‫Portanto, o objetivo deste vídeo é ter projéteis que realmente sejam lançados pelo ar e se comportem como
‫os projéteis deveriam.
‫Ei, bem-vindo de volta.
‫Neste vídeo, estamos preocupados em fazer com que nosso projétil realmente se comporte como um projétil e se mova.
‫Agora, existem diferentes maneiras de lidar com isso.
‫Uma maneira é definir manualmente a localização e a rotação do projétil.
‫Agora, isso geralmente exigiria que fizéssemos a atualização a cada quadro, então provavelmente colocaríamos isso
‫na função tick.
‫Outra maneira é simplesmente adicionar um impulso ao projétil e deixar o mecanismo de física assumir o controle.
‫Essencialmente, estamos aplicando uma força e lançando esse projétil e deixando a gravidade agir, e
‫o projétil simplesmente voará no ar.
‫Agora, outra maneira seria usar um componente de movimento.
‫Agora, este é um tipo especial de componente que adicionaríamos à nossa classe de projéteis.
‫E depois de definir alguns parâmetros no componente de movimento, o componente de movimento lidará com
‫o movimento do ator.
‫Agora acontece que o Unreal Engine tem um tipo de componente embutido feito especificamente para projéteis.
‫Portanto, isso aproveita alguns dos recursos integrados do Unreal Engine.
‫E ao fazer isso, permitimos que o componente de movimento lide com o movimento para nós com base nas configurações
‫que fornecemos.
‫Então este é o método que vamos usar.
‫Então, gostaríamos de adicionar um componente de movimento de projétil à nossa classe de projétil, e é isso que irá
‫lidar com o movimento do objeto de projétil.
‫Assim, à medida que geramos um projétil no mundo, o componente de movimento do projétil que pertence à classe do
‫projétil pode ser configurado e personalizado com base nas variáveis da classe de movimento do projétil que
‫definimos.
‫Agora vamos definir alguns deles, como sua velocidade inicial e sua velocidade máxima e o componente de
‫movimento do projétil vai realmente mover o projétil no mundo para nós.
‫Agora, aqui está a página de documentação do Unreal Engine para você.
‫Componente de movimento do projétil.
‫Este é o componente com o qual estamos preocupados e você verá que ele diz que o Componente de
‫Movimento do Projétil atualiza a posição de outro componente durante seu tique.
‫Por padrão, ele moverá o componente de rota.
‫Agora aqui está a inclusão.
‫E se você continuar rolando para baixo, verá algumas das variáveis que podem ser definidas no componente
‫de movimento.
‫Então role por isso e dê uma olhada e veja quais são as opções.
‫Agora adicionamos um componente de movimento de projétil à nossa classe da mesma forma que adicionaríamos qualquer outro componente, o que
‫significa que você já sabe como fazer isso.
‫Portanto, seu desafio é entrar na classe de projéteis e adicionar uma variável de ponteiro de componente de movimento
‫de projétil e expô-la tornando-a visível em qualquer lugar.
‫E dessa forma podemos editar facilmente o componente de movimento do projétil de dentro dos projetos.
‫Agora você vai construí-lo no construtor de projéteis usando create default sub object.
‫Não se esqueça de incluir o cabeçalho adequado e definir as variáveis de velocidade inicial e velocidade máxima do componente de
‫movimento do projétil.
‫Agora escolha seus próprios valores para estes e defina-os no construtor e, em seguida, teste o jogo.
‫Você vai ajustar a velocidade inicial e a velocidade máxima no painel de detalhes selecionando o componente no
‫projeto do projétil.
‫E isso lhe dará um pouco de experiência ajustando parâmetros e experimentando como desenvolvedor.
‫Então pause o vídeo e crie o componente de movimento do projétil agora.
‫OK.
‫Então estou aqui no projétil H e você provavelmente adicionou seu componente na seção privada.
‫Então, se você fez, você tem os instintos certos.
‫Vamos tornar isso uma variável privada.
‫Tudo bem.
‫Se não o fez, você pode movê-lo facilmente para a seção privada, se desejar.
‫Agora, este será um componente de movimento do projétil U, e isso é um ponteiro.
‫E podemos simplesmente chamar esse componente de movimento do projétil.
‫Agora, vou dar a isso uma propriedade U e simplesmente tornar isso visível em qualquer lugar.
‫Agora, você provavelmente deu uma categoria.
‫Se não, tudo bem, mas vou dar uma categoria e chamar de movimento.
‫Então nós temos o componente de movimento do projétil.
‫Vou deixar de fora a declaração de encaminhamento e ver se consigo compilar agora aqui
‫no CP do projétil, vou incluir o arquivo de cabeçalho.
‫Então, de volta à página de documentação, vou copiar este include e simplesmente colá-lo aqui no projétil.
‫E agora estou pronto para construir meu componente.
‫Então, vou dizer componente de movimento de projétil e vou usar criar subobjeto padrão e
‫o tipo será seu componente de movimento de projétil.
‫E para o texto, vou simplesmente chamar esse componente de movimento do projétil assim.
‫Aí está o meu ponto e vírgula e aí está.
‫Agora, conforme instruído, vamos definir o movimento do projétil, a velocidade máxima do
‫componente, e darei a isso uma velocidade inicial de, digamos,
‫1300 F. valor certo.
‫Agora vou definir a velocidade inicial do componente de movimento do projétil, e vou defini-lo com o mesmo valor.
‫Então, a velocidade inicial será o quão rápido o componente do projétil é quando ele começa.
‫E, claro, nunca ultrapassará a velocidade máxima.
‫Vamos em frente e compilar isso.
‫Ok, então estou recebendo um erro de compilação e se eu subir verei que está referenciando o projétil h.
‫Então vamos voltar ao projétil H e ele diz Projétil H 27.
‫Está se referindo à linha 27 e é essa linha aqui.
‫E obtemos que este componente de movimento do projétil não é um membro de um projétil.
‫Lembre-se, esse foi o tipo de erro que vimos quando não encaminhamos a declaração.
‫Assim, podemos facilmente declarar isso com a palavra-chave class e compilar novamente e obter uma compilação
‫bem-sucedida.
‫Então, novamente, é assim que podemos saber se um componente específico está incluído ou não por padrão.
‫E vimos que este não é assim com uma compilação bem-sucedida.
‫Vamos voltar ao editor.
‫Ok, então estou de volta ao editor e vou entrar em projetos e atores e aqui está o projétil BFP.
‫Então aqui projétil NP.
‫Agora vejo que o componente de movimento do projétil está aqui.
‫E no painel de detalhes, você pode ver sob o projétil que temos a velocidade inicial e a velocidade máxima
‫e você pode rolar e ver muitos outros parâmetros que também podemos definir.
‫Então vamos jogar teste isso.
‫Vou apertar o play e clicar com o botão esquerdo e conferir.
‫Nossos projéteis estão se movendo.
‫Eles estão voando pelo ar e param quando atingem algo.
‫Agora, eventualmente, o que gostaríamos de fazer é explodi-los e causar danos.
‫Mas este é um ótimo ponto de partida.
‫Agora vamos nos mover dentro do alcance do fogo e ver se as torres irão gerar um projétil.
‫E claro que não.
‫E a razão é porque temos essa subclasse de variável TW.
‫Então, se você está se perguntando por que as torres não estavam realmente gerando projéteis, você pode não ter definido
‫isso.
‫Então vamos em frente e entrar em lagoas e lagoa de bip, torre e abrir a planta completa.
‫Editor E colocamos a classe de projéteis na seção de combate.
‫Esta é a nossa subclasse de então se definirmos isso para projétil BP agora nossa torre deve começar a gerar
‫projéteis também.
‫Então vamos entrar no alcance de fogo e aí está.
‫Está atirando projéteis em nós.
‫Então isso está parecendo incrível.
‫Então agora temos projéteis.
‫Então, vamos dar uma olhada no nosso plano de seção.
‫Já criamos um tanque que pode se mover pelo mundo e agora estamos lidando com a entrada com
‫as teclas WASD e cliques do mouse.
‫Criamos uma classe de torre inimiga, chamamos de torre em C++ e adicionamos a funcionalidade de fogo
‫com projéteis.
‫Agora, em seguida, precisamos lidar com danos e destruição à saúde neste jogo.
‫Então, esses são os nossos próximos passos e eles vão aparecer nos próximos vídeos.
‫Agora que adicionamos um componente de movimento de projéteis, agora temos projéteis reais.
‫Vejo vocês no próximo vídeo, quando começarmos a falar sobre como podemos fazer esses
‫projéteis explodirem e causarem danos.
‫Vejo você em breve.