Bem-vindo de volta meus colegas desenvolvedores de jogos em um novo vídeo.
E neste, na verdade, tornamos nossos inimigos um pouco estúpidos.
Então, mesmo que ele possa atirar,
mas apenas o pequeno problema é que ele atira em si mesmo,
o que às vezes é bom,
especialmente se um inimigo muito duro.
Mas no nosso caso, vamos consertá-lo mais tarde.
Mas, por enquanto, tudo o que você precisa saber é que podemos
mudar o tempo entre os tiros para, por exemplo, três.
E você pode ver que leva três segundos para atirar,
mas não fazemos isso usando um contador.
Fazemos isso usando algo chamado de co-rotina,
o que é um assustador muito difícil, mas é uma ferramenta credível para aprender no Unity.
Então eu preciso de sua concentração e sua atenção total.
Não vamos perder mais tempo e vamos começar.
Ok, então é hora de dar ao nosso inimigo a habilidade de atirar no jogador,
ou pelo menos atacar o jogador.
Temos dois tipos diferentes de ataques que vamos implementar em nosso jogo.
Um deles será o malaio,
um deles simplesmente atirará de longe ou
jogando a espada e o exemplo dos esqueletos.
Mas vamos nos concentrar mais por enquanto no tiroteio à
distância e fazer-lhes ataques corpo a corpo mais tarde.
Talvez em uma seção diferente,
pode estar na seção chefe onde temos o esqueleto gigante.
Ok, com isso fora do caminho,
vamos prosseguir e começar.
A primeira coisa que vamos fazer é criar
algumas variáveis e o caso do controlador inimigo 0.
Então, vamos entrar no controlador inimigo.
E aqui vamos criar algumas variáveis.
Então, antes do respingo da morte aqui,
vamos adicionar ataque,
apenas um comum, então sabemos o que tudo é e será um campo serializado
do tipo booleano e será um ataque corpo a corpo.
Então, se for um atacante corpo a corpo,
vamos verificá-lo no inspetor e ele atacará usando corpo a corpo.
Então vamos criar um campo serializado,
que será um objeto de jogo e será o projétil inimigo.
Então, isso é o que o inimigo estará jogando fora de sua mão se ele atirar.
Finalmente, vamos criar um ponto de transformação.
Oh, desculpe, posição de fogo.
Ok, então agora temos o projétil.
Criaremos uma posição de arquivo.
E também queremos ter um tempo entre os tiros que o inimigo faz.
Então, é semelhante à forma como lidamos com nossa arma.
Então, flutuar o tempo entre os tiros.
E, finalmente, vamos criar um bool privado pronto para atirar.
Então, o que acontece aqui?
Quando estamos prontos para atirar, o inimigo atira,
e toda vez que ele atira e entre tiros de tempo vai calcular.
Então fizemos isso usando,
acredito no balcão.
Criamos um contador onde contamos o tempo até
terminarmos uma certa quantidade de tempo entre os tiros quando terminar,
então podemos mostrá-lo novamente.
Esse era um jeito antigo.
Agora vamos usar algo chamado co-rotina.
Então, antes de eu fazer isso e apresentá-los a co-rotinas,
deixe-me antes de tudo preparar o pronto para atirar aqui como verdadeiro.
Então, sempre que o inimigo começa,
ele está pronto para atirar e atualizar.
Vamos seguir em frente e criar algo aqui que é uma condição.
E se o atacante malaio,
ou se não somos um meramente atacante, não somos.
Quando colocamos o ponto de exclamação novamente e estamos prontos para atirar.
Então o que vamos fazer é ir em frente
e dizer isso pronto para atirar como falso.
E então aqui vamos começar um revestimento.
Então, o que é uma co-rotina?
Por que precisamos disso aqui?
Vamos ter uma pequena explicação.
Então, o que é um coltan?
Uma co-rotina é um método que pode suspender a execução das
instruções até que uma determinada condição ou certas condições sejam atendidas.
Essas suspensões são conhecidas como rendimento.
E em nosso exemplo,
estará suspendendo o tempo até que nosso inimigo esteja pronto para atirar novamente.
Então, vamos voltar ao nosso código e ver o que tudo isso significa.
Então, atualmente o que temos,
verificamos a atualização que é chamada de cada quadro.
Verificamos se não estamos mirando atacante e estamos prontos para atirar,
depois prontos para atirar, definir como falso.
E, por exemplo, aqui vamos atirar a bala.
Mas o que queremos, assim como tínhamos no balcão,
queremos depois de um certo tempo poder atirar.
Novamente, temos esse conjunto como falso porque não queremos filmar
cada quadro uma bala e ter gazilhões de balas.
Então, a maneira como corrigimos isso é usando uma co-rotina.
Então deixe-me ir em frente e criar uma corrotina aqui
vai ser do tipo enumerador ocular.
Você não precisa se preocupar muito com o que é nosso enumerador,
apenas saiba que é o tipo de revestimentos.
Vamos criar o nome de corrotina como inimigo de fogo, projétil.
Vou abrir os parênteses e vamos suspender o tempo.
Então, vou dizer esse rendimento.
Ok, Focus, rendimento.
Isso significa que estamos suspendendo.
Retorno. Novo.
Aguarde quatro segundos.
Vou abrir os suportes.
E quantos segundos queremos pesar como o tempo entre os tiros?
E depois disso, podemos ir em frente e instanciar a bala ou instanciar o projétil,
que é o projétil,
projétil inimigo onde instanciado na posição cinco,
aquela posição e a posição, mas estação rho.
E então o que podemos fazer é preparar o pronto para atirar de volta à verdade.
E agora podemos mostrá-lo novamente.
Complicado, não é?
Sei menos explicar.
Ah, e antes que eu esqueça,
e aqui depois que tivermos o tiro,
começamos a co-rotina,
que é o projétil inimigo distante.
Ok, agora você está ainda mais confuso.
Vamos tentar isso novamente e atualizar.
O que temos cada atualização de quadro como sendo fria,
temos todas essas declarações aqui, que estaremos
convertendo em métodos em apenas um pouco.
Mas o que nos concentramos é aqui,
se não formos um atacante corpo a corpo e estamos prontos para atirar,
prontos para atirar,
definir como falso, e começamos um Colton.
Então, o que acontece aqui,
pronto para filmar um conjunto para falso?
Isso significa que esse método ou essa condição aqui é falso.
Então, não filmamos novamente todos os quadros.
É por isso que o definimos como falso.
Mas como vamos defini-lo de volta para verdade?
Costumávamos fazer isso usando o contador.
Agora estamos usando algo um revestimento.
E assim como eu disse,
co-rotina é chamada Usando co-rotina de início.
Você coloca o nome aqui e chama isso de enumerador.
Não se preocupe. Não se preocupe com isso. Por enquanto.
Você quer se aprofundar nisso? Seja meu convidado.
Você não precisa saber exatamente o que isso significa.
Temos o projétil inimigo distante,
então temos essa expansão, que é rendimento.
Então temos o retorno novo, espere quatro segundos.
Então, como temos um numerador de íons,
temos que retornar um novo peso quatro segundos. O que isso faz?
Assim como diz, ele espera por alguns segundos,
que é o tempo entre os tiros.
E depois de esperar por isso,
instanciamos o projétil inimigo.
inimigo atira, e ele está pronto para atirar de novo, de novo e de novo.
Então, o que acontece aqui?
Primeiro de tudo, começamos,
temos o pronto para atirar para verdade.
Nós deveríamos.
É falso, não atiramos mais.
E quando o tempo entre os tiros termina,
jogamos o projétil e, em seguida, estamos prontos para atirar novamente.
Vamos testar isso e ver como ele funciona.
Vou voltar para a Unity.
Vou ver onde realmente temos nossa faca 0.
Então, não temos uma faca.
Então, o que faremos é simplesmente usar a bala que já temos.
Então, nos prefabs,
temos os folhetos do jogador.
Basta usar isso por enquanto, a posição de fogo,
deixe-me adicionar o botão direito do mouse,
criar um objeto de jogo vazio.
E vou colocá-lo aqui,
são executados quase aqui.
Então esta será a posição de fogo no inimigo.
Nós fornecemos-lhe a posição FAR
definida entre os tiros seria de 1 segundo. Vamos salvar isso.
E agora vamos nos certificar de que ele não é um atacante.
Vamos executar o jogo e ver o que acontece.
Então agora, lá vai você.
Você pode ver que ele está instanciando a bala,
mas ele está atirando em si mesmo e no rosto.
Então, se eu pausar isso por um segundo,
você pode ver que a posição cinco,
é assim que ela está sendo direcionada.
E sabemos que a bala dos jogadores só viajou na direção certa.
Sei que é meio engraçado.
Vamos tentar isso de uma maneira diferente.
Mas, em qualquer caso,
não vamos nos preocupar muito com isso por enquanto, porque no próximo vídeo estaremos
criando balas inimigas adequadas que realmente vão longe para o jogador ou não.
Até balas criarão o projétil,
que é o nono do inimigo.
Ele vai jogá-lo como o jogador e não atirar em si mesmo.
Mas você pode ver agora que isso está funcionando usando o Colton.
Se eu clicar de volta no inimigo aqui,
você pode ver que posso aumentar o tempo entre os tiros para 2.
Então agora, a cada dois segundos, temos esse ataque.
Então, espero que você tenha gostado do vídeo.
Sei que a mecânica de tiro não é perfeita,
mas como eu disse no próximo vídeo,
estaremos criando balas melhores.
Espero que você esteja cometendo todas as suas mudanças.
E no próximo vídeo estaremos fazendo balas inimigas apropriadas,
gentios, ou o que quer que você queira chamar.
Então, vejo você.