Bem-vindo de volta a esta seção.
Olhando para a física dos objetos, atualmente estamos lidando com a velocidade que colocamos sobre esta bala.
Agora o que eu quero que você faça com ela, ou a casca, como a chamamos aqui, é arrastar e soltar
uma cópia dela em seu patrimônio e criar um pré-fabricado original.
Podemos então voltar e abrir nosso código de tanques.
Não precisamos salvar esta cena a menos que você queira escrever.
Então comecemos escrevendo algum roteiro que vamos chamar de Fire Shell.
Então vá Criar e queremos um C afiado chamado Fire Shell.
E aqui precisamos basicamente instanciar uma cópia da casca e também posicioná-la de onde queremos que ela
saia.
Agora, se você clicar duas vezes em seu tanque para aproximá-lo, você quer que ele venha desta posição
aqui, não da posição do tanque, porque a posição global do tanque ou sua origem para o modelo está realmente
sentada aqui.
Portanto, você não quer que as balas saiam de lá, você as quer aqui em cima.
Portanto, o que podemos fazer neste caso é apenas acrescentar um pequeno marcador.
Então, vamos para nosso tanque, vamos clicar com o botão direito e criar um vazio.
E então, com esse vazio, vamos chamá-lo de algo como torre.
E então você precisa realmente mudá-lo para onde você o quer.
Portanto, selecione-o e depois mova-o desta maneira.
Agora, se estiver em um lugar estranho, então certifique-se primeiro de tudo, você 000 aqui para que ele fique sentado na mesma
posição dos tanques, 000 então você pode realmente selecioná-lo e apenas movê-lo para cima e isso permitirá que você
o coloque ali mesmo.
Agora, não queremos que seja dada uma gorjeta no momento.
Queremos atirar bala em uma direção reta.
Portanto, vamos manter isso na horizontal com esse eixo Z.
Certo.
Agora, antes de passarmos ao código para disparar uma concha, se você se lembrar em Move Shell que estamos realmente
subindo um pouco na tela, assim como atravessando.
Só queremos mudar isso de volta para atravessar a tela dessa maneira e depois podemos abrir nosso código
de incêndio.
Então vamos agarrar isso.
Por isso, aqui queremos acrescentar a bala.
Portanto, queremos uma bala de objeto de jogo público e uma torre de objeto de jogo público.
Certo.
Então, no início, por enquanto, o que faremos é ir embora.
Instanciar uma bala na torre de transformação de ponto.
A posição do pensamento e a rotação dos pontos da torre transformam a rotação dos pontos para garantir que ela esteja voltada na direção
correta.
E vamos então soletrar isso corretamente.
Portanto, poupe isso.
Agora vamos voltar à unidade.
Vamos arrastar e soltar o corpo de bombeiros para o tanque no inspetor.
E então você tem esta bala.
Você quer pegar sua concha da pasta de bens, colocá-la lá e depois quer que sua
torre arraste a torre que está no tanque até lá.
Certo.
Agora, quando o jogamos, o tanque dispara realmente uma bala.
Assim, se formos jogar assim, você pode ver que está atirando uma bala muito lentamente, um metro por segundo através da tela,
e vamos acelerar isso um pouco mais tarde.
Certo.
Portanto, vamos parar de brincar para começar.
Vamos virar o tanque vermelho.
Portanto, basta selecionar o tanque inimigo e, em seguida, apenas acertar a chave e girá-la.
Assim, ele vai se deslocar para a distância dessa maneira.
Queremos então editar de fato o roteiro que está naquele tanque.
Então, vamos encontrar o roteiro de viagem, abram isso.
Agora, este é o código que lhe permite dirigi-lo, mas na verdade queremos automatizá-lo para
começar.
Portanto, basicamente a tradução transformada que está aqui embaixo, basta fazer uma cópia disso e nós a colocaremos
lá dentro.
Comentaremos o outro e nesta tradução para o Zed, faremos apenas uma velocidade multiplicada
pelo tempo do ponto delta e isso vai então apenas projetar aquele tanque para frente.
Você também pode querer comentar a rotação apenas para que não a gire acidentalmente.
Certo, agora se salvarmos isso e apenas acertarmos o jogo para testá-lo, nosso tanque vermelho vai explodir naquela
direção, enquanto estamos atirando por aqui.
Certo.
Um pouco rápido, penso eu, para meu gosto.
Portanto, vou apenas mudar isto, acelerar para um inicialmente.
Certo.
Assim, agora podemos voltar para dentro de nossa casca de fogo e adicionar algum código para começar a disparar a bala.
E faremos isso quando chegarmos à barra de espaço.
Então, vamos lá.
Se a entrada de dados for o espaço de pontos-chave, então instanciaremos o projétil.
Certo, então vamos mudar este nome de partida aqui para criar bala e aqui vamos correr criar.
O que queremos fazer agora é determinar o ângulo que o tanque deve estar de frente antes que ele realmente
crie a bala.
Portanto, aqui vamos colocar a trajetória de cálculo e criar aqui em cima.
Nulo, calcular a trajetória.
Para resolver este problema, devemos primeiro determinar um momento para o impacto com base em quando a bala
e o alvo estarão no mesmo lugar.
O caminho das balas é definido por sua velocidade.
O caminho do alvo é definido por sua posição mais sua velocidade.
Quando eles estarão no mesmo lugar, depende do tempo.
Portanto, multiplicamos cada um deles pelo tempo.
Agora, após esse tempo, o alvo e a bala estão no mesmo lugar.
Isso significa que eles estarão à mesma distância do atirador.
Expressamos isto como s multiplicado por T igual a p mais v multiplicado por t.
Então, o que fazemos com esta equação?
Bem, temos que resolver para T e isto significa envolver alguns quadráticos e resolver para uma equação
quadrática.
Agora, se você não está familiarizado com quadráticos, nós realmente não temos tempo suficiente neste vídeo para passar
por isso.
E eu sugeriria que você fosse ler este link da Wikipédia aqui e talvez também que revisasse essa matemática se você
tiver uma olhada no YouTube em alguns ensinamentos sobre isso.
De qualquer forma, muito simples e direto, o que vamos fazer aqui é resolver isto.
Antes de mais nada, vamos esquadrinhar os dois lados da questão.
Certo.
E isso nos dá a seguinte linha, que é o produto de P consigo mesmo mais dois produtos P v, t mais produto
v ponto com si mesmo e t ao quadrado é igual a s ao quadrado multiplicado por t ao quadrado.
Agora muito rapidamente, se você fizer um quadrado de um vetor, na verdade é o mesmo que um produto de ponto.
Então é de lá que vieram esses produtos DOT.
Agora na próxima linha, estamos basicamente colocando o fator S ao quadrado T ao quadrado do outro lado da
equação.
Assim, tudo isso pode ser igual a zero e misturar isso com os valores que já temos.
Certo, então esta é nossa equação quadrática e agora temos que resolvê-la, o faremos em código.
Mas antes de fazermos isso, quero apenas apontar o que todos os nomes de variáveis no código
vão igualar com o que sai desta equação.
Portanto, a forma geral de uma equação quadrática é A X ao quadrado mais B, x mais C igual a zero.
Temos nossa equação nesse formato.
Assim, se você der uma olhada, você pode ver onde está um x ao quadrado.
Portanto, esse é o último termo aí.
Neste caso, T é nosso valor x porque é o valor que estamos tentando encontrar.
B x é o segundo termo na equação.
Então C é o que está no início, o produto de P e P.
Agora para resolver isso e descobrir o que é T com uma equação quadrática, há dois caminhos para isso, e neste
caso podemos usar a fórmula mostrada aqui onde X é igual a menos B mais menos raiz quadrada de B ao quadrado menos
quatro ac sobre dois A.
Portanto, basicamente, vamos pegar cada um desses diferentes elementos
dessa fórmula que equivale a A, B e C e conectá-los na raiz para resolver para X ou, no nosso caso, T.
E isso nos dará quanto tempo ou a diferença de tempo até o impacto da bala e do tanque.
Certo.
Portanto, acho que isso é comida suficiente para pensar neste vídeo.
O que faremos é voltar no próximo vídeo e realmente colocar isto em código para que você possa
vê-lo trabalhando com o tanque e a bala.