Acredite ou não, neste ponto do curso, você tem conhecimentos matemáticos suficientes para
criar um tanque piloto automático, o que significa que você pode fazer com que o tanque gire e se mova em direção à lata de combustível ou
por si só.
Portanto, este é o seu desafio.
Eu gostaria que você programasse nele.
Então, se você pressionar a tecla T, ele liga o piloto automático que fará com que o tanque navegue sozinho até o tanque de combustível.
Portanto, não esqueça o ângulo, a velocidade, o movimento que você precisa ter para testar o tanque,
se os tanques realmente chegaram a uma certa distância de estar no tanque de combustível no qual deveria
então parar, é claro.
Por isso, faça uma pausa no vídeo agora, saia e complete esse desafio.
E quando voltarmos, eu passo por isso junto com você.
Bem-vindo de volta.
Como você conseguiu fazer isso funcionar?
Bem, antes de mais nada, vamos começar trabalhando em um método de piloto automático.
Portanto, vamos colocar o piloto automático vazio assim.
E o que vai fazer é calcular o ângulo.
Portanto, calcule o ângulo.
Agora lembre-se que o ângulo de cálculo já tem essa capacidade de snapping, que está aqui embaixo.
Então, assim que executarmos isto, ele calculará o ângulo e se voltará para ele, o que não faz mal, por enquanto
o deixaremos assim.
A outra coisa que queremos fazer é realmente empurrar o tanque para frente.
Isto vai fazer girar o tanque e depois só precisamos continuar empurrando-o para frente ao longo de seu eixo y.
Lembre-se, é o Y neste caso que está indo adiante.
Assim, se selecionarmos nosso tanque e pressionarmos a tecla W, podemos ver que temos ali aquele verde, que é a parte mais
importante para empurrar as coisas para frente.
Então, vamos apenas à posição do ponto trans e podemos apenas atualizar a posição com um novo vetor três
que movimenta apenas a coordenada Y.
Portanto, vamos dizer zero e depois precisamos de um pouco de valor aqui.
Vamos a 0. 1 F para começar com zero como o que o empurrará para a frente.
Agora lembre-se que esse vetor de avanço para o tanque é seu eixo y.
Ok, então isso é algum tipo de piloto automático.
Agora vamos subir o topo aqui e apenas adicionar um piloto automático de bool igual a falso inicialmente.
Então, vamos entrar em nossa atualização tardia e vamos testar se o ponto de entrada recebe a chave para baixo
do código t neste caso e isso vai garantir que tenhamos um suporte extra lá.
E depois aqui em baixo, depois aqui em baixo vamos piloto automático igual a não piloto automático, o que o ligará e desligará.
Então, fora daqui irá se o piloto automático.
Portanto, se isto for verdade cada vez que esta atualização for feita, o piloto automático funcionará desta forma.
Ok, então salve isto.
Vamos voltar à unidade e dar uma olhada no que recebemos aqui.
Então, vamos pressionar o jogo e depois vamos bater a tecla T e isso vai nos transformar e começar a mover
o tanque.
Portanto, agora o que está acontecendo aqui é notar que o tanque está constantemente se voltando para o tanque de combustível e você notará que minhas linhas de registro
de depuração ainda estão lá, o que está criando padrões interessantes, mas está se movendo desta forma.
Isso se deve ao modo como estamos adicionando no vetor à posição de nossos tanques, porque na verdade estamos
adicionando em um vetor y à posição do tanque.
Portanto, ele vai realmente se mover no espaço mundial em vez de adicionar aquele vetor 010, que é este aqui, nós realmente
queremos adicionar qualquer que seja a direção de frente do tanque.
Agora, lembre-se, esse será o vetor ascendente no caso do tanque.
Portanto, vamos apenas ajustar isso um pouco.
Portanto, de volta ao nosso código, se subirmos até o topo aqui, vamos em vez de somar o vetor para cima,
que é o vetor do mundo ou um vetor voltado para cima e para baixo, vamos adicionar a ele este ponto transformado
ponto para cima, que você saberá por experiência, agora que este é um comprimento de um.
Portanto, se quisermos incluir também uma velocidade, acrescentaríamos outro carro alegórico na parte superior.
E vamos definir a velocidade para.
3. 1 se e então multiplicaríamos isto pela velocidade e também precisamos multiplicar pelo tempo,
tempo delta, se quisermos levar em consideração a rapidez com que estamos realmente nos movendo também.
Agora a velocidade que estou recebendo de erro aqui porque na verdade tenho um tipo diferente de velocidade para o nosso
acionamento, que era quando estamos dirigindo para frente, vamos apenas chamar esta velocidade T de velocidade de tanque
só para nos livrarmos desse erro e vamos salvá-lo e dar uma olhada no que recebemos agora.
Então, vamos pressionar o jogo e depois pressionaremos o T, que deve nos iniciar em nosso caminho.
Pronto, então lá vamos nós.
Agora o que está acontecendo com isto é obviamente a velocidade.
Pode-se dizer que está se movendo muito, muito ligeiramente, mas estamos indo na direção certa, mas apenas muito ligeiramente
por causa disso multiplicado por 0. 1 para a velocidade.
Assim, na verdade, podemos consertar isso facilmente.
A outra questão, que você verá uma vez que colocamos isto em um, é que temos esta coisa nervosa para frente e para
trás para o tanque, e isso porque ele está tentando ficar perfeitamente alinhado com o tanque de
combustível real.
Portanto, agora estamos nos movendo um pouco mais rápido.
Provavelmente você poderia multiplicar isso por dois, mas você pode dizer se ampliarmos um pouco mais o ângulo
para trás e para frente, na verdade estamos indo para trás e para frente por esta quantidade em cada
lado daquele vetor em direção ao combustível.
Esta é uma questão bastante comum com o uso da matemática, que é muito precisa em uma aplicação como esta, porque à medida
que você começa a mover seus objetos, seus cálculos estão lhe dando valores precisos, mas você não
quer necessariamente valores precisos.
E você viu isso quando estávamos tentando mover nossos porcos em direção ao aldeão ou a um local de objetivo.
Queremos o tipo de cenário suficientemente próximo é bom o suficiente para continuarmos com isto.
Não queremos que seja absolutamente perfeito.
Também não queremos realmente que o tanque se encaixe de uma só vez em direção ao combustível.
Assim, em vez disso, vamos acrescentar uma velocidade de curva também ali, assim como temos uma velocidade de avanço.
Muito bem.
Portanto, temos nossa velocidade para nosso tanque.
Agora, vamos fazer isso também, porque foi um pouco lento e então teremos também uma velocidade de
rotação.
Portanto, chamemos isso de nossa velocidade.
Temos uma velocidade de rotação para quando estamos usando as chaves, que é aqui em cima, mas isto é para o nosso piloto automático.
Então vamos fazer esse 0. 5 F e, claro, você também pode multiplicar isso pelo tempo delta nos valores
de rotação.
Mas eu não vou colocar isso aqui.
Mas você pode então descer para a rotação no sentido horário e adicionamos aqui nosso valor de velocidade para
multiplicá-lo ali dentro.
A outra coisa que também precisamos fazer é realmente desligar o piloto automático quando nos aproximamos o suficiente de nosso combustível.
Portanto, faremos isso em nossa atualização de LT.
Já temos a capacidade de calcular a distância.
Vamos descer aqui e o que vamos fazer aqui embaixo é ir se calcularmos a distância e diremos se
esse limite for menor do que dois neste momento, então iremos com piloto automático igual a falso e simplesmente
desligá-lo.
Calcular a distância não é devolver nada no momento, mas tudo bem.
Podemos consertar isso.
Assim, se subirmos para calcular a distância, podemos então retornar a distância aqui.
Assim.
Certo.
E certifique-se de que isto retorne à tona.
Certo.
Então, vamos dizer isto e experimentar.
Portanto, o que vamos fazer é ter nosso tanque movendo-se e girando um pouco por um pouco em direção
ao combustível.
E também vai desligar seu piloto automático quando chegar lá.
Portanto, se pressionarmos a tecla T, você verá agora que ela está voltando.
Agora está tremendo um pouco, não tanto quanto era antes.
E você poderia até mesmo mudar essa rotação, diminuir ainda mais a velocidade.
Você também poderia fazer uma espécie de teste como se o ângulo fosse maior do que qualquer outro.
Então, não se preocupe em dar uma volta.
Portanto, devemos chegar perto de ter nosso piloto automático desligado muito em breve, o que não estamos, é claro.
Portanto, vamos dar uma olhada em nosso console.
Vamos fazer uma pausa e dar uma olhada no valor da distância que está sendo divulgada aqui.
Portanto, esta é uma situação perfeita onde você terá este tipo de problema de precisão.
Observe que a distância é 2. 00083.
E eu disse, quando são menos de dois, isso não é menos de dois.
Portanto, é assim que estes valores podem ser precisos e fechados que podem causar-lhe problemas.
Portanto, digamos menos do que três.
Voltemos, portanto, ao nosso código.
Vamos mudar isso em nosso piloto automático por menos de três.
E também vou colocar aqui esse código de virada só para que você saiba como isso pode funcionar.
Se chegarmos, digamos, a calcular o ângulo, é aqui que nossa rotação está acontecendo.
Digamos que se o ângulo maior que dez graus, lembrando que o ângulo está em radianos, na verdade precisamos ter
certeza de multiplicá-lo antes de testá-lo contra nossos dez, que está em graus.
Então nos voltaremos.
Agora esta é a velocidade que eu tenho aqui.
Vou apenas voltar para cima e torná-lo um pouco menor para que você possa
realmente ver o efeito de tê-lo menor e que você terá uma volta gradual no objeto em vez de apenas um estalido
para enfrentá-lo.
Ok, então vamos experimentar isto.
Você tem que lembrar que, como você está afinando esses valores, podemos sempre acabar com outras
coisas que vão dar errado, como a distância até um objeto.
E na verdade, deixe-me bater aqui.
Você notou como isso se virou lentamente?
Se eu bater no T novamente para desligar o piloto automático e sair por este caminho para bater no T, ele se vira.
Ok, ao invés de se divertir.
Agora, como você torna mais difícil para o tanque virar de uma só vez como se ele só pudesse fazer curvas realmente grandes
e íngremes, se ele estiver muito perto de um objeto, ele pode nunca, nunca ser capaz de virar para estar suficientemente
perto de um objeto, neste caso você acabará com todos os tipos de imprecisões no sistema.
Portanto, fique atento a isso.
Talvez você tenha que aumentar o limite de distância para parar e você pode ver que meu tanque parou agora.
Portanto, aumente isso à medida que você fizer o ângulo que um pode virar maior também, pois só objetos realmente
afiados virando serão capazes de atingir o alvo que depois disso.
Portanto, agora que o piloto automático está desligado, eu devo ser capaz de dirigir para longe e então, se eu puder pressionar
a tecla T novamente, você verá que eu volto e me ajustei ligeiramente toda vez que você sair um pouco naquele ângulo e voltar para dentro
em direção ao combustível.
Certo.
Portanto, há uma aplicação muito simples do piloto automático da matemática que temos aprendido
nesta seção.
E acredite ou não, a IA que usamos nos jogos hoje em dia é basicamente baseada no que você acabou de ver com mais alguns ajustes
e muitas animações e efeitos especiais e esse tipo de coisa.
Mas se trata realmente dos vetores subjacentes e da matemática que apenas faz este material funcionar.