Nesta seção, veremos os agentes em movimento autônomo e a mecânica de direção
usada para movê-los pelo mapa.
Agora há um monte deles que vamos ver.
Um de cada vez e depois reuni-los para obter comportamentos diferentes.
Então, primeiro, o que eu gostaria que você fizesse é criar um novo projeto de unidade e trazer o arquivo
inicial para esta palestra.
Quando você abre a cena da direção, que é essa aqui, você verá que tem um
plano de terra e há uma árvore e dois agentes pequenos lá.
Agora, se você pressionar play, verá que o agente policial poderá se mover livremente usando as teclas de seta
para que ele não seja um agente de malha de navegação, mas vamos transformar o personagem 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 a borracha seja capaz de perseguir o policial e também fugir do policial.
Então esse será nosso objetivo nesta palestra.
Agora, olhamos o policial ou o policial que ele chamou em uma hierarquia.
Basta clicar nele para ver que ele tem uma cápsula e ele tem o script de drive que
permitirá que ele se mova.
Agora, fizemos um pequeno ajuste neste script de unidade.
Vamos abrir isso e dar uma olhada.
É um pouco diferente do script seco padrão de estoque que você encontrará na documentação da unidade
esquecer o eixo.
Também adicionei uma flutuação pública da velocidade atual.
E então eu estou gravando nesse carro público da velocidade atual.
As traduções que estão aqui embaixo que estamos calculando, porque vamos usá-las mais tarde.
Tudo certo.
Então essa é a diferença com isso.
Agora, a borracha precisa ser transformada em um agente de malha de navegação; portanto, selecione o inspetor, clique em
Adicionar componente e queremos usar o agente de malha de navegação.
Agora, se dermos uma olhada na borracha de perto, você verá que o colisor do agente de malha de navegação está deslocado acima do
caractere que você deseja mover para baixo.
Então, vamos até o inspetor e, no deslocamento da base, basta colocar um e isso irá movê-lo para
baixo da Unidade Um, que então o encaixará perfeitamente.
Agora, para ver o NAF se mesclar no chão e na árvore, se apenas selecionarmos os que estão dentro
deste ambiente aqui.
Então, aquela árvore ali e o chão ali no inspetor você verá que ambas estão inclinadas
para a navegação estática.
Vamos trazer isso para que você possa ver a navegação estática, o que significa que, quando
quebrarmos nossa malha de navegação, se você for um membro, excluiremos a árvore.
Então, isso se tornará um obstáculo, porque é muito íngreme para os agentes subirem.
Agora, se você adicionar mais árvores a isso, o que faremos um pouco mais tarde, teremos que voltar a
cada vez para reconstruir nossa malha de navegação.
ESTÁ BEM.
Então, agora estamos prontos para começar a programar a borracha para perseguir a Copa tão abaixo dos ativos, como clique com o botão
direito do mouse em Criar um script C e eu vou chamar esse bot apenas para
simplificar o arrastar e soltar na hierarquia para a borracha.
Portanto, ele deve estar no mesmo nível do agente de malha de navegação, porque vamos acessá-lo dentro do
script.
ESTÁ BEM.
Então agora abrimos isso no topo, vamos fazer o que fizemos antes com a obtenção de agentes de malha de navegação.
Mas antes de tudo, precisamos da nossa biblioteca de olhos, portanto, usando o Unity dot engine dot I I.
E então, no tipo de classe, vamos criar um agente de malha de nervos chamado agent. Em seguida, iniciaremos
Agent igual a esse componente get dot e queremos obter o agente de malha nav anexado a esse
objeto de jogo como naquela.
OK.
Então agora podemos escrever o método de busca.
Portanto, procurar é provavelmente o mais fácil, porque é basicamente apenas seguir outra coisa na malha de
navegação.
ESTÁ BEM.
Portanto, não vamos devolver nada disso.
Portanto, será nulo procurar.
Vamos atribuir a ele um vetor 3, que é a nossa posição.
ESTÁ BEM.
Então, chamaremos esse local de passagem e tudo o que fazemos com nosso agente de
malha de navegação é o destino do conjunto de pontos do agente e o destino é o local.
Agora, o local nesse caso será o policial.
Então, precisamos pegar o policial para que possamos segui-lo.
Então, voltando ao topo da nossa classe, vamos criar um objeto de jogo público para o nosso objetivo, vamos chamá-lo
lá e, em seguida, o que fazemos com o nosso objetivo é na atualização, envie-o para procurar.
Então será procurar.
E aqui vamos passar pela posição do ponto de transformação de ponto alvo, porque esse será o
nosso vetor através do valor do copo.
OK.
Portanto, salve isso agora. Vamos voltar para a unidade e você quer ir até a borracha e encontrar o script no
script da caixa em que o alvo será exposto.
E é isso que queremos arrastar e soltar o copo naquele alvo.
ESTÁ BEM.
Então agora pressione play e você terá uma borracha que atualiza continuamente sua posição para seguir o cobre e
/ ou buscar a localização do copo de maneira bastante direta.
Agora, quando a borracha chega à Copa, se olharmos de perto, ela pára em cima dela para evitar
isso.
Selecione o ladrão na hierarquia e o inspetor que você deseja definir sua distância de parada e isso está na
direção quatro caras parando a distância e defina isso para dizer que vamos colocar em duas.
O que significa que vai parar, mas não está bem em cima do policial.
Então agora basta pressionar play e você pode vê-lo chegar e eles vão parar cara a cara assim e então
ele não vai realmente ficar em cima do policial e mesmo que o policial tenha um colisor nele,
você não realmente preciso disso para detê-lo.
OK, para que a busca seja bastante direta.
Então, o que Sikh está fazendo é calcular um vetor do ladrão para o policial no caso mais simples, ou seja, se não
houver obstáculos lá.
Caso contrário, ele deve calcular um caminho por lá.
Mas digamos que temos nosso vetor dessa maneira.
Portanto, o vetor será o policial menos o robô, que nos dará esse vetor aqui para a direção
que o policial deve seguir.
Agora, se vamos fugir, queremos fazer o oposto.
Queremos ir por esse caminho, mas como descobrimos o que é esse caminho.
Bem, dessa maneira, esse vetor é multiplicado por menos um, que vai girar ao redor.
Portanto, está voltado para essa direção, mas não podemos atribuir ao destino definido apenas um valor vetorial.
Precisamos fornecer um local real para onde você deseja que o robô voe.
Então, ao invés de pegar apenas esse vetor que vamos calcular aqui, vamos
adicioná-lo à posição da borracha que realmente nos dará esse ponto aqui.
E isso fará o robô fugir na direção oposta por lá.
ESTÁ BEM.
Então, vamos colocar isso em prática, voltar ao seu código e, abaixo da busca, adicionaremos
void voe.
Também vamos fugir para um vetor, para que o vetor três forneça o local de
onde estamos fugindo.
Qual novamente é o nosso alvo.
Mas desta vez vamos primeiro o vetor três fugir, o vetor é igual à localização menos a posição do ponto de transformação
do ponto e, em seguida, com esse vetor, definiremos o destino como destino do conjunto de pontos
do Agente e esse será o local de o agente.
As tendências desse ponto formam a posição do ponto, menos o vetor de fuga.
Então, isso é agora agora aqui na atualização, em vez de procurar.
Vamos mudar isso para fugir para que possamos ver isso funcionando.
Salve isso.
Vamos voltar à unidade e agora pressionaremos play e você pode ver que ele agora se esfacelou.
Agora, só para ver isso um pouco mais claramente, se diminuirmos o zoom e vamos fazer a xícara tentar dar a volta aqui
em algum lugar para que ele possa fazer a borracha se mover e fugir em uma direção diferente.
ESTÁ BEM.
Então agora ele o fez ir assim.
E você pode ver que
ele continuará fugindo infelizmente da borda do mapa.
Mas você entendeu.
Então, se agarrarmos essa borracha e vamos colocá-lo aqui, pressionar play e
sair por aí dessa maneira, podemos manipular que ele vai fugir de nós assim.
Então, enquanto tentamos nos aproximar, ele apenas continua.
Mas o policial neste caso está indo muito mais rápido.
Então ele alcançará, mas essa é a fuga e o sikh.