Nesta seção, vamos analisar os agentes de movimentação autônoma e a mecânica de direção que são
usados para movê-los em torno do mapa.
Agora, há um monte deles que vamos analisar um de cada vez e depois juntá-los para obter comportamentos
diferentes.
Portanto, antes de tudo, o que eu gostaria que vocês fizessem é criar um novo projeto de unidade e trazer o arquivo Stata
para esta palestra.
Quando você abre a direção vista nela, que é esta aqui, você vai descobrir que tem um
avião terrestre e há uma árvore e há dois pequenos agentes lá dentro.
Agora, se você pressionar play, verá que o agente policial vai poder se mover livremente usando
a tecla de seta.
Portanto, ele não é um agente de malha de navegação, mas vamos transformar o caráter de borracha em um agente de malha de navegação.
E, mais tarde, também vamos transformar a árvore em um obstáculo.
Mas antes de tudo, queremos que o assaltante possa perseguir o policial e também fugir do policial.
Esse será, portanto, nosso objetivo nesta palestra.
Agora, se olharmos para o policial ou para o policial, ele é chamado em uma hierarquia.
Basta clicar sobre isso.
Você verá que ele tem um colisor de cápsulas e tem o roteiro de viagem que permitirá que ele se movimente.
Agora, eu fiz um pequeno ajuste neste roteiro de acionamento.
Vamos abrir isso e dar uma pequena olhada.
É ligeiramente diferente do roteiro da Stock Standard Drive que você encontrará na documentação
da Unidade para ter acesso a ele.
Também acrescentei em uma bóia pública de velocidade atual e depois estou registrando nesta bóia pública de
velocidade atual, as traduções que estão aqui embaixo que estamos calculando porque vamos usar
isso mais tarde.
Muito bem.
Portanto, essa é a diferença.
Agora, o próprio assaltante precisa ser transformado em um agente de malha de navegação.
Portanto, selecione-o.
Vá até o inspetor, clique em adicionar componente e nós queremos ir como agente de malha de navegação.
Agora, se olharmos a borracha de perto, você verá que o Agente Colisor de Malha de Navegação está deslocado
acima do personagem.
Você quer mover isso para baixo.
Então, vamos até o inspetor e na base colocamos apenas uma unidade e esta a moverá para baixo de uma
unidade, que então lhe servirá muito bem.
Agora para ver a malha de navegação em si, o solo e a árvore, se apenas selecionarmos aqui os dois que estão
dentro deste ambiente.
Portanto, temos uma árvore ali e o chão ali no inspetor, você verá que ambos estão marcados
para navegação estática.
Vamos apenas trazer isto para que você possa ver a navegação estática, o que significa que quando cozinhamos
nossa malha de navegação, se você for um membro, então vamos ter a árvore excluída.
Portanto, vai se tornar um obstáculo porque é muito íngreme para que os agentes possam escalar.
Agora, se você acrescentar mais árvores a isto, o que faremos um pouco mais tarde, temos que assar novamente
a cada vez para reconstruir nossa malha de navegação.
Muito bem, agora estamos prontos para começar a programar o assaltante para perseguir o policial.
Assim, em ativos, clique com o botão direito do mouse para criar um roteiro em C afiado.
E vou chamar este robô apenas para fazer com que seja simples arrastar e largar isso na hierarquia,
sobre a borracha.
Portanto, ele tem que estar no mesmo nível do agente de malha, porque vamos acessá-lo dentro do roteiro.
Por isso, agora abrimos isso na parte superior.
Vamos fazer o que já fizemos antes com a obtenção de agentes de malha de navegação.
Mas antes de mais nada, precisamos de nossa biblioteca de IA.
Assim, usando unidade, motor de ponto, ponto AI e depois dentro de nossa classe, vamos criar um agente de malha
nervosa chamado agente.
Então, no início, vamos agente.
Igual a este ponto, obter componente.
E queremos obter o agente de malha de navegação que está preso a este objeto de jogo dessa forma.
Ok, então agora podemos escrever nosso método de busca.
Portanto, a busca é provavelmente a mais fácil porque é basicamente apenas seguir algo mais na malha de navegação.
Portanto, não vamos devolver nada disso.
Portanto, será uma busca nula, vamos dar-lhe um vetor três, que é a nossa posição.
Portanto, chamaremos de passagem esse local aqui.
E então tudo o que fazemos com nosso agente de malha de navegação para isso é ir agente ponto de destino definido e o destino
é o local.
Agora, o local neste caso será o policial.
Por isso, precisamos de contactar o policial para que possamos segui-lo por aí.
Portanto, apoiando o topo de nossa classe, vamos criar um objeto de jogo público para nosso alvo.
Vamos chamá-lo de lá.
E então o que vamos fazer com nosso objetivo está na atualização.
Envie isso para procurar para que seja procurado.
E aqui vamos passar pela posição de ponto de transformação do ponto alvo porque esse será nosso
valor vetorial três do policial.
Ok, então salve isso agora mesmo, vamos voltar à unidade e você quer ir até seu assaltante e encontrar o roteiro.
O roteiro, vai ter o alvo exposto e é aí que queremos arrastar e largar
o policial sobre esse alvo.
Então agora pressione play e você terá um ladrão que está continuamente atualizando sua posição para seguir o policial ao
redor ou procurar a localização do policial.
Bastante simples.
Agora, quando o assaltante chega realmente ao policial, se olharmos mais de perto, ele pára em cima dele.
Para evitar isso, selecione o assaltante na hierarquia em vez de um inspetor.
Você quer definir sua distância de parada e isso está na direção.
Se tivermos uma distância de parada e definirmos isso para dizer, vamos colocar a dois, o que significa que
vai parar, mas não bem em cima do policial.
Então agora basta pressionar o jogo e você pode vê-lo chegar e eles vão parar cara a cara assim.
E então, ele não vai realmente subir no topo da polícia.
E mesmo que o policial tenha um colisor sobre ele, você não precisa dele para detê-lo.
Ok, então isso é Sikh.
Isso é bastante simples.
Então o que Sikh está fazendo é calcular um vetor desde o ladrão até o policial.
No caso mais simples, isto é, se não houver obstáculos ali dentro, caso contrário é preciso calcular
um caminho ao redor.
Mas digamos apenas que temos nosso vetor indo por este caminho.
Assim, o vetor será o policial menos o robô, o que nos dará este vetor aqui para a direção que o policial
tem que percorrer.
Agora, se vamos fugir, então queremos fazer o contrário.
Queremos ir por aqui.
Mas como descobrirmos o que é este caminho?
Bem, desta forma é apenas este vetor multiplicado por menos um, que vai virá-lo ao contrário.
Portanto, está voltada para essa direção.
Mas não podemos dar ao destino definido apenas um valor vetorial.
Precisamos dar-lhe um local real onde você quer que o assaltante fuja.
Assim, em vez de levarmos apenas este vetor que vamos calcular até aqui, vamos
adicioná-lo à posição da borracha, o que realmente nos dará como este ponto aqui, e
que fará a borracha fugir na direção oposta ali.
Muito bem, então vamos colocar isto em prática.
Volte para o seu código e, por baixo, procure.
Vamos acrescentar a fuga no vazio.
Também vamos fugir para um vetor.
Assim, vetor três, vamos dar-lhe o local de onde estamos fugindo, que mais uma vez, é nosso
alvo.
Mas desta vez vamos, antes de mais nada, passar ao vetor três.
O vetor de fuga é igual à localização menos esta posição do ponto de transformação.
E então, com esse vetor, vamos definir o destino para o agente definir o destino.
E essa será então a localização do agente que transformará esta posição de ponto.
Menos o vetor pulga.
Muito bem.
Então isso é fugir agora aqui embaixo na atualização.
Em vez de procurar, vamos apenas mudar isso para fugir, para que possamos ver isso correndo.
Guarde-o.
Vamos voltar à unidade e agora vamos pressionar o jogo.
E você pode ver que agora ele fugiu.
Agora, só para ver isso um pouco mais claramente, se fizermos um pouco mais de zoom e fizermos o policial tentar
dar a volta.
A parte de trás aqui em algum lugar para que ele possa fazer com que a borracha se mova e fuja em uma direção diferente.
Por isso, agora ele o fez ir assim.
Você pode ver que ele vai continuar fugindo.
Assim.
Assim, ao tentarmos chegar mais perto, ele vai continuar.
Mas o policial, neste caso, está indo muito mais rápido, portanto, ele o alcançará.
Mas isso é a fuga e a busca.
No próximo vídeo, voltaremos e veremos a perseguição.