Na palestra anterior, programamos em nosso nó de folha e também fizemos nosso comportamento de ladrão para conseguir que nosso agente
se movesse em direção ao diamante.
Agora, o que fizemos foi apenas colocar algo que funcione e não vamos realmente mantê-lo
lá dentro.
A razão é que, se voltarmos ao código aqui, o que estamos fazendo atualmente
é correr este processo de árvore que depois vai e corre o aço, que depois vai até seu filho e corre até Diamond.
Agora, isto retorna imediatamente o sucesso aqui.
Certo, agora não pode retornar o sucesso até que o agente esteja de fato no diamante.
Portanto, tudo pode acontecer no caminho para o destino.
Além disso, como estamos usando medidas NAV, muitos de seus métodos que você coloca aqui vão parecer como
mudança para Diamond, mudança para Van, mudança para aqui, mudança para lá.
E, portanto, precisamos ter uma espécie de método que apenas cuide de nosso movimento na malha de navegação.
Portanto, vai criar isso primeiro antes de continuarmos com nossa árvore de comportamento.
Caso contrário, vamos acabar em uma pequena confusão.
Certo.
Assim, o que faremos inicialmente é determinar se o agente está realmente em movimento ou se ele está ocioso.
Então, se ele está se mudando, então ele está, obviamente, fazendo um comportamento particular, neste caso você não quer ir e definir o destino
para outro lugar enquanto ele está no meio da mudança para o diamante, por exemplo, porque ele simplesmente
vai parar com isso e depois se mudar para outro lugar.
Portanto, aqui no topo, o que vou fazer é acrescentar mais um pequeno enumero para rastrear o que nosso
agente está fazendo, de modo que o público em estado de ação ou chame-o assim, e vamos ou estar ociosos ou trabalhando.
Portanto, é muito simples.
Há apenas dois estados em que o agente estará e então criaremos uma variável para manter isso.
Portanto, estado de ação, estado é igual a estado de ação, estado ocioso.
Portanto, vamos começar agora mesmo como se estivéssemos ociosos.
Podemos usar isto, colocando-o entre ocioso e trabalhando para acionar quando algo realmente vai
ocorrer.
Assim, desceremos até o fundo aqui embaixo de nossos go tos e colocaremos nosso novo método para atravessar a
malha de navegação.
Portanto, este seria o status de ponto de nó, ir para o local e que então terá um vetor três para o destino.
Portanto, é para lá que vamos e passamos por lá.
Agora, bem, antes de mais nada, descubra a que distância estamos de nosso destino.
Portanto, a distância de flutuação até o alvo é igual ao vetor três.
E essa é a diferença entre o destino e a posição atual de nosso agente.
Portanto, esta posição de transformação de ponto agora há muita codificação manual aqui para trabalhar com a malha de navegação
real.
A malha de navegação tem um monte de operações que vêm com ela que lhe dirão até
onde está o destino e se está correndo e se há um caminho e tudo isso.
Mas é notório por ter muitos problemas com ela.
Assim, fazendo todas essas coisas manualmente com nosso próprio código, podemos estar absolutamente seguros dos valores que estamos recebendo.
Portanto, isto aqui deveria ser realmente um vetor a três pontos de distância.
E uma vez feito isso, vamos dizer se o estado é igual a ação, ponto, estado, ponto ocioso.
Em seguida, iremos ao agente definir o destino para nosso destino.
E isto também significa que isto só funcionará uma vez quando você estiver ocioso.
Se você estiver trabalhando e isto entrar aqui novamente, não vai continuar constantemente definindo
o mesmo destino repetidamente, o que vai economizar um pouco de tempo de processamento para você.
Portanto, vamos transformar isto em estado de igualdade de ação.
Ponto de Estado funcionando.
Certo, então agora se não estamos ociosos, isso significa que devemos estar a caminho de um destino.
Caso contrário, se o vetor estiver a três pontos de distância.
E desta vez vamos procurar a distância entre o caminho do ponto agente e a posição e o destino
é maior ou igual a, digamos, dois.
Então, não chegamos ao destino e, portanto, o agente falhou.
Assim, vamos voltar ao estado de ociosidade.
Estado é igual a ação, estado ocioso.
E agora retornaremos o estado de falha do nó.
Certo, lembre-se do que quer que façamos, sempre temos que retornar com fracasso ou sucesso.
Portanto, neste caso, estaremos retornando ao fracasso.
E então, aqui em baixo, vamos para outro lugar, se distante para o alvo como nós criamos
antes for menos de dois, então somos bem sucedidos e aqui colocamos estado igual a ação estado ocioso novamente e não devolvemos nenhum
ponto de status ponto de sucesso.
E então, na primeira vez que passamos por isso e estabelecemos o estado para trabalhar e este destino
aqui, vamos então não devolver nenhum ponto de status de ponto correndo.
Agora este estado de funcionamento aqui vai realmente nos impedir de voltar aqui e verificar isto imediatamente
novamente.
De qualquer forma, vamos começar a usar isso em um momento.
Portanto, poupe isso.
Agora podemos realmente usar o go to location, se formos até Diamond e formos até Van.
Portanto, aqui está um pequeno desafio para você, é reescrever estes dois métodos para que eles não usem isso, mas eles realmente usam
este novo método de go to location que acabamos de criar.
Então, faça uma pausa no vídeo, vá lá e faça isso.
E quando voltarmos, eu lhe mostrarei como fazer isso.
Certo.
Bem-vindo de volta.
Como você foi?
Bem, estamos basicamente nos livrando de nosso destino aqui em cima.
E tudo o que precisamos fazer é simplesmente retornar, ir ao local e, é claro, soletrá-lo corretamente.
E aqui, vamos enviar através de nossa posição transformada em ponto diamantado.
E é isso mesmo.
E então queremos isso novamente na van e aqui, vamos ter apenas a van não transformar a posição.
Portanto, qualquer uma destas coisas que você cria vai para Diamond e vai para a ventilação
agora vai usar este ir para o local, o que significa que você pode controlar tudo até onde o movimento da malha de navegação
daqui vai tornar a vida muito mais fácil.
Certo, então fizemos um pouco de limpeza doméstica com nosso código de movimento de malha de navegação, que
poderemos usar repetidamente.
Atualmente, o que você tem não vai funcionar do jeito que você espera, então nem tente.
No próximo vídeo, nós voltaremos e realmente ligaremos isso.
Vá para Diamond e vá para Van corretamente, criando um nó de seqüência.