Bem-vindo de volta, meus colegas desenvolvedores de jogos.
Então, acabamos de tornar nosso jogo muito mais legal.
Então, agora, quando devemos premiar,
não temos apenas nossas balas desaparecendo.
Temos nossa bala indo em um sopro de fumaça.
Então, quando atiramos,
você pode ver que temos esse pequeno efeito legal que é destruído.
Observe aqui que ele é destruído depois de um certo tempo,
o que é algo que precisamos levar em consideração.
Então, não vamos perder mais tempo e vamos começar.
Oh, então é hora de adicionar um pouco de peso aos nossos impactos de bala.
E faremos isso adicionando um efeito de impacto.
Então, vou entrar nos ativos e vou entrar na pasta sprites,
e vou criar uma nova pasta aqui,
que será o fato das balas.
E aqui vamos entrar nos recursos.
E eu lhe forneci alguns fatos que encontrei.
Você pode usar o que quiser.
Ou você também pode encontrar alguns no site,
open game art.com ou qualquer outro site.
Então você pode ver aqui que temos três efeitos.
Este com um pouco de fumaça,
este com um pouco menos de fumaça,
mas é um pouco estranho.
E este aqui, agora eu vou usar o OH,
então você vê que ele tem o impacto do metal de impacto.
Metal de impacto metálico.
Não se preocupe com isso.
Só teremos a ver com o que temos.
Usaremos o metal de impacto.
Vou usar o primeiro. Claro.
Por que não?
Então, como vamos fazer isso?
Vamos cortar o sprite.
Vamos criar uma animação e depois vamos
reproduzi-la sempre que atingirmos o objeto.
Vou cortar isso se você quiser.
Podemos fazer isso juntos ao mesmo tempo e ver quem faz isso mais rápido ou melhor.
Então, primeiro, selecionamos o primeiro 1.
Primeiro impacto, torne-o múltiplo.
Aplique alterações.
Vamos fazer isso apontar.
Talvez não precisemos fazer isso apontar.
Vamos em frente e Sprite Editor.
Ok, a partícula de fumaça ou não visível,
mas vamos seguir em frente e cortar isso pelo tamanho da grade.
Vamos ver o quão grande é essa grade.
Então, temos 1, 2, 3.
Ok, então vou pegar minha útil calculadora.
E a maneira como vou cortar isso é porque temos esse 960.
Você pode vê-lo aqui à direita,
960 na horizontal e 576 na vertical.
Então 576 divididos por,
porque existem três linhas,
acredito que seja 192.
Então, no eixo y, é 192.
E aqui temos 12345,
então 960 dividido por 5 também 192.
Ótimo, deveria ter visto isso chegando.
Então, nós cortamos quadrados.
Muito bom.
Aplique as alterações.
Lá vamos nós.
Agora temos todos esses.
Vou criar um novo objeto de jogo aqui,
e esse será o impacto da bala.
Então impacto de bala na parede.
E lá vamos nós. Aqui está.
Vou seguir em frente e adicionar um renderizador sprite a ele.
Então renderizador sprite, e eu só vou dar esse efeito aqui.
Onde está isso?
Vamos adicionar esse impacto de fato aqui.
Podemos vê-lo?
É visível?
Está por trás. Devemos criar uma camada de classificação?
Claro. Por que não?
Vamos em frente e criar ou podemos fazer uma camada de classificação de balas de camada profunda.
As balas. Claro, vamos manter isso porque, obviamente, faz parte das balas,
então é lógico fazê-lo na camada de balas que o colocará aqui.
Isso é grande o suficiente? Talvez queiramos torná-lo maior.
Vamos em frente e fazê-los pensar que 50 é muito.
Vamos fazer 75 e ver o quão grande isso é.
Ok, talvez possamos adicionar, fazer 50,
aplicar isso, e talvez remover o ponto,
torná-lo bi-linear para que fique um pouco mais suave.
Sim, eu gosto mais disso.
Então lá vai você. Esse será nosso impacto.
Vou adicionar um componente do animador aqui.
E vamos escolher este.
Animações, na verdade.
Claro, vamos seguir em frente e criar.
Isso estará nas animações de ativos.
E isso será chamado de parede de impacto de bala.
E estou chamando isso de bala impactante.
Bem, porque mais tarde teremos diferentes tipos de impactos.
Então, aqui vamos ter a bala.
Parede batendo bala.
Salve isso.
Lá vamos nós. Então você pode ver imediatamente porque já tínhamos o componente do animador,
o controlador é enviado aqui que moveu
a animação um pouco para que possamos obter todos esses,
configurá-los aqui e agora colocar a animação de volta.
Agora, vamos jogar isso.
Certo, muito bom.
Acho que é um pouco rápido.
Ou talvez isso seja perfeito.
Vamos ver.
Vou torná-lo um pouco mais amplo.
Certo, ótimo.
Acho que isso é suficiente.
Mas ainda acho que 50 é um pouco demais.
Talvez vamos fazer com que 18 sejam não,
salve isso. E animações.
Vamos jogar isso.
Certo, acho que isso é bom o suficiente.
Então, vou salvar isso.
Vou entrar nos ativos, ir
para os prefabs,
e vou fazer disso um prefixo ou o impacto da bala agora é um prefab.
É na visita,
os sprites estão na camada de bala e temos tudo configurado.
Espero que você tenha feito o seu melhor e criando isso ou se não o fez,
espero que tenha seguido e eu não tenha sido muito rápido para você.
Então, agora, o que vamos fazer?
Agora precisamos instanciar esse efeito toda vez que uma bala atinge uma parede.
A maneira como fazemos isso é emitindo um desafio para você.
Então, seu desafio é instanciar o efeito.
Então encontre seu próprio efeito de impacto, se você precisar.
Assim, você pode passar pelo jogo aberto, nosso site
ou pelo HIO ou simplesmente pesquisando no Google.
Talvez se você for um bom artista,
você pode criar o seu próprio e obter uma referência
ao impacto no script do controlador de bala.
E certifique-se de instanciar o efeito antes que a bala seja traçada.
Então, pause o vídeo agora mesmo e faça o desafio.
Certo, bem-vindo de volta.
Então, de volta à nossa bala de jogador aqui,
vou criar uma referência ao campo serializado para a bala.
Ou será um objeto de jogo,
o efeito de impacto de bala.
Salve isso.
E o que faremos é antes de destruirmos
ou seremos destruídos ou antes que a bala seja destruída,
vamos instanciar o efeito de impacto da bala.
E vai ser onde, onde deveria estar?
Vai estar na posição de transformação,
ponta da bala e a rotação da transformação dessa bala.
Então, vou salvar tudo isso.
Vou voltar para Unity.
Vou escolher a bala do jogador.
Agora temos um fato de impacto.
Podemos adicioná-lo aqui.
Podemos salvar isso.
Vamos apenas verificar o inimigo para 1 segundo.
Então, o que acontece aqui?
Por que estamos tão confiantes e criando isso?
E por que há um pequeno problema.
Ainda assim, o que acontece é assim que instanciamos,
você vê que a camada padrão aqui é a bala atingindo a parede.
Então, imediatamente após a entrada,
começamos a bater em paredes de bala, fato.
Então, vamos ver como isso funciona.
Deixe-me remover isso daqui.
Sim, acho que posso removê-lo.
E mais uma coisa que eu queria fazer,
notei que esses Z estavam em 0,
que eu acabei de redefinir tudo isso,
salvar isso, executar o jogo.
Então agora eu deveria atirar em uma parede e, após o impacto, você pode ver que há uma explosão,
mas por algum motivo você pode ver que ela ainda está acontecendo.
Então, se eu tiver muitas balas,
você notará que temos muitos fatos e nenhum deles vai embora.
Você pode vê-lo aqui no impacto das balas na parede.
Então, o que vamos fazer,
e isso é por causa da natureza da animação que acabamos de criar.
Se eu entrar nas animações,
se eu entrar na bala,
você pode ver aqui que temos o controlador e temos a animação.
E já lhe disse anteriormente alguns vídeos
atrás, quando estávamos fazendo as animações do jogador,
que há esse tempo de loop aqui.
Então eu só vou removê-lo,
salvar isso, executar o jogo.
Se a bala.
Lá vai você, ele explode na parede.
Lá vai você.
Você pode ver agora que o impacto é jogado apenas uma vez,
mas há um pequeno problema e é que os impactos da bala
na parede ainda estão presentes e eles não estão sendo destruídos.
Então, como vamos consertar isso?
E há uma maneira muito simples de fazer isso.
E enquanto te ensina como fazer isso,
mostrarei uma ferramenta extremamente eficaz dentro da animação.
Então, o que vamos fazer é entrar nos ativos.
Vamos para prefabs.
Vamos adicionar a bala Impact de volta. E aqui.
E o que vamos fazer é voltar ativos, scripts
e criar aqui um novo script C-sharp que será o, vamos ver,
impacto, efeito, destruidor.
E será um roteiro extremamente, extremamente simples.
Vamos apertar Enter.
E mais tarde, serei lembrado de colocar
cada script e uma pasta porque, à medida que avançamos, teremos muito mais scripts.
Vou adicionar o destruidor de efeito de impacto.
Vou abrir isso.
Vou remover o início e a atualização e vou apenas fazer um método.
E isso vai ser um vazio público.
Destrua. E o que vamos fazer,
não , não destruir, apenas destruir.
E o que vamos fazer aqui é simplesmente destruir o objeto do jogo.
Ótimo, como vamos chamar isso?
Agora, poderíamos chamar esse método daqui,
mas isso não é muito eficaz.
Por quê? Porque quando instanciamos o boletim aqui
, tudo bem, vamos passar pela lógica.
Instanciamos a bala após o impacto,
e depois destruímos o objeto do jogo,
que é a bala,
porque o controlador de bala do jogador está na bala.
Então, as placas de impacto.
Então, depois de destruirmos esse objeto do jogo,
não temos mais o controlador de bala do jogador.
Ele não está disponível e podemos demonstrar isso.
Então, vou criar esse fato de impacto.
Então acabei de definir a bala criada aqui.
E depois de destruirmos o objeto do jogo,
tentarei obter
o componente de ponto de efeito de impacto e vou acessar o destruidor de impacto.
E a partir daqui vou acessar a destruição.
Portanto, esse é o método.
E agora, se eu jogar meu jogo,
você notará que teremos um erro.
Então, vou mover isso e me certificar de que você aplica as alterações.
Então, todo o impacto da bala na parede tem
esse método e veja o que acontece quando filmamos no console.
Lá vamos nós.
O que acontece?
Nem vemos o impacto.
Por que isso? Porque fomos destruídos.
E se tentarmos fazer isso antes de destruirmos o objeto do jogo,
vamos dar uma olhada nisso.
Execute o jogo.
Lá vamos nós. Portanto, não há efeito.
Está sendo destruído antes mesmo de vê-lo.
Então, vou comentar isso e podemos manter isso como está.
Isso não é problema.
Mas acho que vou remover isso.
E isso será para testes talvez mais tarde você
se lembre de como tentamos, mas não deu certo.
Então agora temos o método destruir aqui que destrói o objeto do jogo.
E como vamos chamar isso depois de terminarmos nossa animação,
essa é a parte complicada.
Então, agora, se eu for para a animação enquanto tiver o efeito de impacto de bala,
eu posso reproduzi-la e vejo que no final,
você notará que quando toda a fumaça desaparecer,
não temos mais nada a fazer.
O que podemos fazer é aqui que temos essa pequena chave e aqui e eu estou tendo,
ok, então adicione um evento.
Podemos adicionar um evento em algum momento da animação,
e isso será crucial mais tarde à medida que passarmos pelo curso.
Eu não esperava fazer o solo cedo,
mas não se preocupe com isso.
Podemos adicionar um evento.
E quando adicionamos um evento,
vemos aqui que temos animações,
eventos e funções que podemos escolher.
E se clicarmos aqui,
vemos que temos a palha.
Por que só temos que destruir?
Esta é a destruição,
que está bem aqui.
Então, o que acontece quando adicionamos um evento também,
a animação que temos em um determinado objeto,
podemos acessar todos os métodos presentes dos métodos públicos aqui.
E não se preocupe se você ficou um pouco surpreso com a forma como criamos
isso mais tarde no curso,
vou passar por cada etapa da criação de métodos.
Mas, por enquanto, saiba que podemos acessar
todos os métodos públicos que estão disponíveis para nós no objeto.
Então, o que acontecerá agora?
Ao tocarmos nossas animações,
veremos a explosão,
o sopro de fumaça.
E quando chegarmos ao último quadro,
esse evento será acionado,
que é o destruidor.
E o que isso destrói faz?
Ele entra aqui e destrói o objeto do jogo,
que está segurando o destruidor de efeito de impacto,
que é o impacto da bala na parede.
Portanto, certifique-se de aplicar todas as alterações e a substituição.
Vou para a liderança do impacto da bala.
Vou executar o jogo.
E quando eu atiro em uma parede,
devemos ver o efeito,
mas não o fazemos. Por que isso?
Vamos voltar aqui.
Nós salvamos essas alterações?
Vamos tentar isso novamente.
Acho que isso é porque não salvamos o script.
Nós executamos o jogo.
Vemos o sopro de fumaça.
E lá vai você.
Você pode ver que ele desapareceu da hierarquia.
Então, agora vamos testar isso um pouco melhor.
Lá vai você, você pode ver o efeito de impacto acontecendo ao nosso redor.
E então todo o efeito desaparece.
E é muito mais eficaz.
É melhor do que ter muitos objetos de jogo em nossa hierarquia,
ocupar espaço, ocupar memória RAM crucial
e entupir o sistema.
Então, espero que você tenha gostado,
espero que esteja fazendo o seu melhor em cada desafio.
Espero que você esteja gostando das coisas novas que adicionamos todas as vezes.
Vou encenar todos esses.
Vou dizer que adicionou o fato de impacto de bala
e o destruiu, destruído depois.
Usar eventos com um ponto de exclamação,
porque isso é, os eventos são uma ferramenta incrível que você não verá com muita frequência que as pessoas usam.
Então, espero que você goste e eu o vejo no próximo vídeo, onde vamos
adicionar os efeitos de trilha às nossas balas,
portanto, tornando o órgão muito mais frio.