Nesta palestra, vamos começar a analisar uma das técnicas de IA mais fundamentais utilizadas nos waypoints
de navegação.
Os pontos de passagem são simplesmente posições em um mapa que, quando navegados em seqüência, produzem um caminho.
É o mesmo sistema usado em um GPS de carro que lhe dá instruções sobre onde dirigir.
Os Waypoints são um sistema fácil de implementar em um NPC, pois os faz parecer mais inteligentes do que
eles são.
E ao fornecer-lhes um conjunto seguro de locais em um mapa para se deslocarem entre eles, eles também podem evitar obstáculos.
Já criamos uma embaixada que pode se mover e seguir uma meta local.
A atualização deste sistema para um sistema de waypoint é simples.
Neste vídeo, vamos montar um sistema de waypoint e fazer com que estes tanques circulem
de um para o outro em um circuito.
Para começar, você precisa do recurso inicial que está anexado a esta palestra.
Então, faça o download que abre um novo projeto de unidade e traga esses recursos para dentro.
Dentro dela.
Você vai encontrar uma cena chamada Tank Racing, e se você abrir essa cena, você terá algo
assim.
Portanto, temos um solo que é feito de um cubo que é esticado com uma textura sobre ele.
Há quatro tanques de cores diferentes e há uma palmeira, a palmeira que usaremos para nossos pontos de passagem.
Essencialmente, um ponto de passagem só precisa ser uma posição 3D ou 2D.
Se você está em um mapa 2D, isso está em algum lugar em seu ambiente de jogo.
Normalmente quando estou colocando pontos de passagem para, digamos, uma pista de corrida ou dentro de um mapa de jogo,
então eu apenas uso a esfera ou um cubo em unidade só para poder ver onde ela está.
E mais tarde você pode remover seu renderizador e certificar-se, é claro, se você tiver pontos de passagem,
de que você realmente tira qualquer colisão porque eles não estão realmente no ambiente.
Eles estão apenas nos mostrando as posições onde nossos personagens controlados pela IA devem se situar.
Mas neste caso, estou usando uma palmeira para que possamos realmente vê-la.
E neste tipo de cenário de deserto, faz sentido.
Acho que com sua palmeira, o que você precisa fazer é controlar o DX para duplicá-lo, depois bater sua chave w e
possivelmente em uma vista de cima para baixo.
Basta mover essa palmeira, tentar mantê-la no avião, mas apenas movê-la.
E o que vamos fazer é apenas fazer um pouco de circuito com ele.
Controle D novamente, pegue o duplicado e então Controle D.
Faça você mesmo.
Apenas um pouco de uma circular.
Coisa que seu tanque pode dar a volta.
Certo.
Portanto, este tanque vai contornar estes e usá-lo como um pouco de pista de corrida.
E estes são os pontos de bandeira para ele.
Muito bem.
Portanto, agora vamos realmente escrever algum código para conseguir isso.
Por isso, vá criar C afiado em seus ativos.
E vamos chamar isto de follow waypoint.
Então, siga o woop e depois abra-o.
Primeiro de tudo, seu roteiro precisa saber sobre os waypoints em si e nós vamos colocá-los
em uma série de objetos de jogo.
Portanto, crie um conjunto de objetos de jogo público para seus pontos de passagem.
Então, também precisamos de um número inteiro para acompanhar o ponto de passagem em que estamos.
Por isso, chamaremos esse ponto de passagem atual e o fixaremos em um valor zero.
Porque seu índice de matriz sempre começa em zero.
Assim, essa primeira árvore será o ponto de partida.
Certo, agora temos que mover nosso tanque e, portanto, enquanto estamos aqui em cima, vamos apenas
criar uma bóia pública para a velocidade.
E vamos definir isso para 10. 0 F e, é claro, você pode mudar o que quiser.
Muito bem.
Não precisamos de um começo neste ponto, mas em atualização, vamos basicamente percorrer todos estes pontos de
passagem.
Mas não queremos ir para o próximo ponto de passagem até chegarmos de fato ao próximo ponto de passagem.
Isso faz sentido?
Certo.
Então começamos no waypoint zero e depois testamos se estamos suficientemente perto desse waypoint e depois vamos
para o próximo waypoint.
Agora, você se lembra como testamos para descobrir se nosso personagem está realmente perto do local de seu objetivo?
Porque isto é o que precisamos fazer para cada ponto de passagem.
Portanto, temos que usar uma distância.
E aqui vou colocar se vetor três.
Distância de pontos, então usaremos a Biblioteca de Matemática da Unidade em vez de escrevermos a nossa própria biblioteca novamente.
E vamos encontrar a distância entre esta posição de ponto de transformação.
Portanto, esse será o tanque e os pontos de passagem.
Ponto branco atual.
Portanto, este é o primeiro ponto de passagem quando chegamos aqui pela primeira vez.
Posição de transformação.
E então precisamos dizer, bem, quando estamos suficientemente próximos desse ponto de passagem em particular?
Portanto, digamos que se for menos de três, consideraremos que chegamos realmente a esse ponto de passagem.
E quando o fizermos, vamos atualizar o que é o waypoint atual, waypoint atual plus.
Assim, o ponto de passagem atual será um só e, portanto, podemos começar a ir em direção a isso.
Agora, em algum momento, nossos pontos de passagem vão se esgotar.
Assim, digamos que temos dez pontos de passagem.
Em algum momento, o waypoint atual será um valor de índice de dez ou maior, que não existirá
dentro desta matriz.
Porque se você tem dez pontos de passagem, então você só tem índices de 0 a 9.
Agora, quando isso acontecer, precisamos realmente mudar nosso waypoint atual de volta para o primeiro.
Portanto, se o ponto de passagem atual for maior ou igual ao nosso comprimento de pontos de passagem.
Então, o waypoint atual é igual a zero
e também vamos soletrá-lo corretamente.
Ok, então há nosso ponto de partida atual.
Portanto, agora cuidamos de ir para o próximo ponto de passagem e também de voltar ao ponto de passagem zero, caso chegássemos
ao final.
A próxima coisa que realmente precisamos fazer é realmente empurrar nosso tanque para frente.
Portanto, vamos cultivar este ponto, transformar ponto, olhar e lembrar o que ele faz.
Vai transformar seu caráter para olhar para outro local.
Portanto, neste caso, queremos olhar para o próximo ponto de passagem ou olhar para o ponto de passagem para o qual estamos indo.
Assim, os pontos de passagem de corrente transformam
o ponto de passagem e, em seguida, este ponto transforma a tendência de ponto zero final.
Portanto, nada nas direções X e Y, mas queremos ir ao longo do z à velocidade multiplicada pelo tempo.
Tempo Dot Delta porque estamos dentro da atualização.
Muito bem.
Portanto, economize isso.
Volte à unidade e precisamos colocar isto em um tanque.
Portanto, vamos começar apenas com um tanque.
Portanto, selecione seu tanque verde ou qualquer outro que você queira.
Arraste e solte que seguem o roteiro do waypoint para lá.
Certo.
Agora temos nosso conjunto de pontos de passagem no topo, onde podemos colocar todas essas palmeiras.
Agora você pode colocá-los um a um, ou pode selecionar o lote inteiro deles.
Se você os criou em um circuito na ordem de seu circuito, então será muito mais fácil simplesmente arrastar e soltar o lote
inteiro e então eles terminarão na ordem correta na matriz de pontos de passagem.
Portanto, basta ir até o topo e clicar no pequeno cadeado que irá bloquear esta visão do inspetor.
Em seguida, na hierarquia, você pode selecionar o primeiro turno da palmeira, selecionar a última palmeira,
e apenas arrastar e soltar os pontos de passagem, e isso irá povoar todo esse conjunto na ordem correta.
Lembre-se, estamos indo de um ponto de passagem para o outro.
Portanto, se você mudar estas encomendas, esse será o caminho que o tanque seguirá.
Certo, então vamos apenas lembrar de desbloquear nossa visão de inspetor e agora estamos prontos para experimentar isto.
Então, pressione play e veremos que nosso tanque explode em torno dos pontos de passagem.
Certo.
Assim, com nossa configuração atual, temos nosso olhar que está fazendo nosso tanque estalar para olhar os novos pontos
de passagem.
Agora, essa é uma forma bastante antinatural de procurar um personagem para se mover.
Na verdade, queremos que ele gire mais devagar e mais naturalmente em direção ao próximo ponto de passagem.
Portanto, no próximo vídeo, voltaremos e trataremos disso.