Bem-vindo de volta, meus colegas desenvolvedores de jogos.
Neste vídeo, vamos adicionar disparo automático.
Então você pode ver aqui que temos um tempo entre os tiros.
Quanto tempo você quer entre tiros? Eu posso ouvi-lo.
Você quer dizer 0,5?
Certo, senhor, lá vai você.
Nós jogamos run.
Tínhamos o botão Play.
Executamos o ganho
e mantemos pressionado o botão esquerdo do mouse.
E lá vai você. Você pode ver que devemos
cada quadro e você pode ver que eles são muito consistentes.
Então eu não estou jogando um jogo e aqui estou pressionando o botão e ele
continua disparando a cada 0,5 segundos ou cada um tem segundo,
continuamos atirando capaz.
Então, não vamos perder mais tempo.
Vamos aprender sobre contadores.
E vamos começar.
O k.
Então, queremos ter a capacidade
disparar balas automaticamente quando o botão do mouse é pressionado.
Então, atualmente, sempre que pressionamos o botão,
uma vez que podemos atirar,
mas o que queremos é ter algum tipo de
disparo automático enquanto estamos segurando o botão,
assim como um rifle,
mesmo que estejamos usando uma espingarda aqui,
vamos apenas usar nossa imaginação e imaginar que esta é uma espingarda automática.
E enquanto estamos segurando o botão, ele continua disparando.
Então, como vamos fazer isso?
Atualmente, se você olhar aqui,
você pode ver que esse método,
o botão baixar o mouse,
retorna um verdadeiro durante o quadro que o usuário pressionou o botão do mouse fornecido.
Portanto, ele só retorna true uma vez no
quadro em que o player ou o usuário pressionou o botão.
O que queremos é que queremos usar algo chamado botão de entrada do mouse.
Portanto, observe que este foi o botão do mouse para baixo.
Este é o botão obter o mouse.
E se você ler a descrição,
você pode ver que ela retorna um verdadeiro se o botão do mouse fornecido está pressionado.
Então, enquanto estamos segurando,
isso continua retornando verdadeiro.
E isso nos permitirá continuar instanciando balas o tempo todo, a cada quadro.
Mas chegamos a um problema.
Você notou que quando executamos o jogo,
se você se lembra, podemos ver as estatísticas aqui.
Então, temos cerca de 800 a mil quadros por segundo.
Então, cada quadro,
enquanto estamos pressionando o botão do mouse,
vamos instanciar uma bala,
o que é muito ruim.
Então, vamos ter cerca de 1000 balas a cada segundo.
Agora, é divertido.
É uma arma muito OOP,
mas não é isso que queremos.
Queremos ter um certo tempo entre
disparar cada livro enquanto estamos segurando como uma arma real.
Qual é o assunto aqui?
Certo, então não se preocupe.
Acho que isso vai resolver sozinho. De qualquer forma.
Vamos começar.
A primeira coisa que vamos fazer é criar um campo serializado,
que será um flutuador,
e será o tempo entre os tiros.
Uma segunda variável que teremos como um flutuador privado e o balcão de disparos.
E o que faremos é assim que começarmos,
vamos definir o contador de disparos em torno de 0,
ou podemos configurá-lo imediatamente aqui em vez de configurá-lo e começar.
Então, começamos em 0.
Agora, se rolarmos para baixo aqui,
vamos criar outra condição.
E diremos que, se o ponto de entrada obter o botão do mouse,
que retorna se o botão de modos fornecido está pressionado.
E também usamos o índice 0 para o botão esquerdo do mouse.
Vamos começar a usar o contador de tiro e
remover dele o tempo delta do ponto de tempo.
Então você se lembra quando usamos o plus é igual
em algum lugar aqui em cima quando estávamos usando a transformação,
agora não a temos.
Bem, isso é semelhante ao mais igual.
Portanto, isso representa o contador de disparos menos o tempo.DeltaTime.
E você sabe, vou duplicar isso, comentar isso.
E então farei disso um minuss igual.
Então você vai se lembrar que essas são as mesmas coisas.
E até vou movê-lo para baixo ao lado da linha aqui.
Você pode manter isso como um lembrete de por que estamos definindo menos iguais,
mais iguais e todas essas coisas.
É muito mais fácil de ler e é muito mais legal
e vai deixar você muito mais profissional
sempre que mostrarmos a alguém o seu jogo.
Então, vamos continuar um,
o que precisamos aqui?
Enquanto estamos segurando o botão do mouse,
contador de disparos está sendo contado para baixo.
Então, o que queremos é que sempre que esse contador de disparos terminar ou se tornar 0,
queremos disparar uma bala e depois
atualizar o balcão de tiro de volta ao tempo entre os tiros.
Então, como vamos fazer isso?
Em vez de instanciar imediatamente,
vou lançar um desafio.
Foi uma transição melhor do que da última vez?
De qualquer forma, seu desafio é verificar se o contador tem e,
portanto, criar uma condição if que verifique o contador de disparos.
Se o contador de disparos for menor ou igual a 0,
por que é menor ou igual a 0?
Você pode estar perguntando por que não imediatamente 0?
Bem, porque como estamos contando.