Na palestra anterior, montamos as bases de nossa árvore de comportamento e imprimimos os nós reais e a estrutura
em que eles entram.
Agora os nós no fundo são os nós da folha.
São eles que vão fazer o trabalho e fazer com que nosso agente, que é nosso assaltante neste caso, se movimente
de fato no mapa, que está simulando que ele está realmente fazendo algo.
Portanto, o primeiro conjunto de comportamentos que temos é ir para Diamond e depois voltar para a van.
Certo.
Portanto, antes de mais nada, nosso pequeno agente aqui embaixo, nosso ladrão, se você clicar nele na
hierarquia e der uma olhada no inspetor, você verá que ele já tem um agente de malha de navegação ali.
Por isso, precisamos de ter acesso a esse agente de malha de navegação dentro do roteiro.
Também precisamos saber nesse roteiro a localização do diamante, que está nesta parte
da galeria e também a van que está aqui.
E esses dois objetos estão na hierarquia, é claro.
Assim, nós os temos também, e podemos passá-los para o roteiro para o ladrão.
Portanto, vamos entrar ali e subir aqui em cima.
Nós vamos passar esses para dentro.
Portanto, queremos um objeto de jogo público e esse será nosso diamante.
E depois queremos um objeto de jogo público.
Van.
Agora também queremos criar aqui nosso agente de malha de navegação.
Então, para cima, vamos usar o ponto I do motor unitário.
E então, aqui embaixo, podemos realmente criar nosso agente.
Portanto, é um agente de malha de navegação.
E para conseguirmos isso logo no início, vamos agente igual a este ponto obter agente de malha de navegação
componente.
Certo, então agora podemos realmente orientá-lo a ir ao diamante.
Assim, se colocarmos no início aqui, por exemplo, o agente definirá o destino e passará pela posição de transformação do diamante,
ele então se moverá para lá independentemente do que a árvore estiver fazendo.
Isto é apenas um teste de nosso agente montado com nossa malha de navegação.
Portanto, basta salvar isso e entraremos em unidade.
Selecione a borracha.
Agora você vai encontrar Diamond e Van expostos nesse roteiro.
E assim você pode agarrar o diamante, que na verdade está preso a este objeto chamado plinto.
E vamos arrastar e soltar isso em diamante.
E a van em si está aqui em cima, fuga de furgão e arraste-a e solte-a ali.
Certo.
Agora, quando pressionarmos o jogo, aquele agente definirá o destino para que ele se mova ao longo de nossa malha de navegação.
Ele vai atravessar a abertura mais próxima que é atualmente aquela porta, porque na verdade é apenas um objeto
vazio sem nenhum colisor em particular ou qualquer coisa.
E ele vai até o diamante.
Muito bem, então sabemos que a parte de malha de navegação está agora funcionando.
Temos de ligar tudo isso com uma ação real.
Portanto, uma ação tem um processo associado a ela.
Vamos voltar ao nosso código para o nó e nos lembrar o que está acontecendo.
Configuramos este status para que cada nó retorne ao sucesso se estiver terminado e foi bem sucedido
se ainda estiver funcionando e falhou se estiver terminado e falhou de fato.
Então, há três coisas agora, de onde elas realmente são devolvidas?
Bem, eles são devolvidos do processo que acontece dentro de cada nó e dependendo do tipo de
nó dependerá do tipo de processo.
Então vamos descer aqui e eu vou acrescentar um novo processo de status virtual público e este processo aqui,
que é basicamente apenas o nível do nó, porque vamos anular tudo
isso, vamos retornar status ponto de sucesso como padrão para aquele nó em particular.
Certo.
Portanto, poupe isso.
Agora vamos entrar em nossa árvore de comportamento e dar-lhe um processo.
Assim, na árvore de comportamento, nós vamos entrar aqui
e, acima de tudo, colocaremos em um processo de status de anulação pública como esse.
Agora, não estamos devolvendo o que a base faz neste caso.
O que vamos realmente retornar nesta árvore é o que a criança retornar, porque lembre-se que sua árvore
de comportamento tem que correr, seus filhos não correm sozinhos.
Assim, cada nó, se tiver crianças, ele corre as crianças.
E então, com base no que as crianças respondem, torna-se esse status.
Por isso, aqui vou correr criança de volta ponto de criança atual.
Processo.
Então o que quer que retorne, esse será o status retornado pela árvore de comportamento.
E isto realmente faz com que a árvore de comportamento execute então o processo de objetos infantis.
Agora, neste caso, os objetos de nossos filhos, se voltarmos para nosso ladrão, vão para o diamante e vão para
Van.
Agora, atualmente, se eles correm, eles são apenas nós básicos, então eles vão voltar.
O sucesso, que é praticamente inútil para nós neste momento, significa que eles não estão realmente fazendo nada.
Portanto, precisamos criar outra classe para as folhas ou uma folha.
Portanto, vamos voltar à unidade.
Vamos clicar com o botão direito em nossa árvore de comportamento, criar um novo roteiro, vamos chamá-lo de Folha.
Em seguida, abriremos isso no editor.
Agora a Leaf vai herdar do Nodo.
Não vai ter um começo em uma atualização para que possamos nos livrar disso.
Agora, a folha em si, isto vai ser um pouco mais complicado porque as folhas têm que realmente executar
um processo particular, o que significa que vai haver algum método designado para a folha.
Não sabemos qual é esse método.
Pode ser qualquer coisa.
Portanto, neste caso, vai ser para começar a correr aquele destino de agentes definidos.
É isso que queremos que ele faça porque estamos usando uma malha nativa.
Mas se você estiver usando algum outro tipo de IA em seu sistema, você pode querer executar uma máquina de estado
finito ou pode querer executar uma rede neural ou algo assim.
Mas o que quer que esses processos façam, eles devem acabar retornando um de nossos status de nó.
Portanto, ou o sucesso, o fracasso ou a corrida.
Agora o que vamos fazer com estes nós de folha é realmente criar um delegado para que possamos passar por métodos, para que possamos codificar
métodos em outro lugar e depois passar por eles e dizer, Isto é o que queremos
que nossa folha funcione.
Está bem?
Agora a maneira como fazemos isso é criar um delegado público e ele vai retornar um status de nó.
Portanto, vamos apenas colocar status e estes serão chamados de tick.
Portanto, um tick é essencialmente uma rotatividade para sua árvore de comportamento.
Um tique é como uma moldura para a árvore de comportamento, assim como uma moldura acontece quando você executa uma atualização em unidade.
Certo.
Portanto, é apenas uma espécie de folha em torno dessa folha em particular ou ação neste caso, então precisamos
de um ponteiro para montar.
Portanto, o método do processo de tic público e é assim que o fazemos lá.
Então, vamos anular nosso processo.
Então, o processo de anulação pública novamente, nos livramos desta base e, em vez disso, o que vamos retornar
é o método de processo e o método de processo, ele vai retornar o status.
Portanto, isto está realmente funcionando para nós, contanto que este método de processo seja estabelecido aqui.
Portanto, aqui em cima eu poderia apenas colocar se o método de processo não for igual a nulo, podemos devolver isso.
Caso contrário, podemos devolver um ponto de status de falha.
Oh, o que esta Pennie está fazendo.
Verificação de erros.
Sim, eu sei.
É muito raro para mim fazer isso, mas já o fiz por você lá.
Certo.
E isso também irá lembrá-lo se você realmente não tiver estabelecido um método para sua folha.
Pronto, então já fizemos isso.
Como a folha sabe sobre o método do processo?
Bem, nós poderíamos ir no comportamento um comportamento e então realmente atribuí-lo lá dentro.
Poderíamos ter gostado de ir ao método do processo diamante ponto igual a este método em particular ou poderíamos
passá-lo através de uma anulação de nosso construtor.
Portanto, queremos uma folha pública que não tenha praticamente nada nela.
Esse é o nosso vazio.
E depois queremos uma folha pública e vamos passar por um fio para o nome
e depois queremos processar o método pm.
Eu gosto disso.
E vamos então sentar-nos com os nomes igual n e p m.
Método de processo para igualar p m como esse.
Agora, isto não está certo.
Deve ser um carrapato como esse.
Por isso, estamos passando por ela.
Isto é basicamente um ponteiro para nosso método que estamos escrevendo, passando por ele, e depois o estamos
instalando até aqui.
Assim, esse método de processo sabe onde ele está aqui embaixo e o executará realmente para nós e vamos nos livrar daquele ponto-e-vírgula
para que ele não goste dele.
Ok, então agora vamos salvar isto.
Vamos voltar ao nosso ladrão e implementá-lo.
Assim, estes diamantes e furgões agora se transformam em folhas assim.
E agora eles estão querendo ser construídos a partir de folha e folha e eles realmente precisam ter algum tipo de método
de passagem também.
Portanto, vamos em frente e escrever algo realmente rápido que satisfaça isso.
Portanto, aqui embaixo, vamos criar um status de nó público.
Tem que estar no mesmo formato em que o carrapato é construído.
Então vá ao diamante dessa maneira.
E quando vamos ao diamante, na verdade queremos estar basicamente executando isto aqui.
Portanto, vamos tirar isso de lá e vamos colocá-lo aqui dentro.
Está bem?
E então temos que devolver algo.
Portanto, vamos voltar.
E, neste caso, vamos fazer disso um sucesso.
Assim, devolveremos o status de ponto de nó, ponto de sucesso.
Agora note aqui que o retorno do sucesso aqui não tem realmente nada a ver se seu agente realmente
chegou ao destino ou não.
Porque, neste momento, não estou realmente preocupado com isso.
Eu só quero algo que você possa ver ao correr.
Certo.
Em seguida, subindo em sua folha de diamante, vamos passar, vamos para o diamante.
E agora a van também precisa de um método para passar por ela.
Muito bem, então agora é hora de um desafio.
O que eu gostaria que você fizesse é escrever um "go to Van método" e colocá-lo aqui com sua folha e escrevê-lo semelhante ao que nós temos
para ir ao Diamond.
Não complique muito as coisas.
Resolveremos tudo isso um pouco mais tarde.
Nós só queremos algo que vai funcionar.
Portanto, siga este formato aqui.
Pausa o vídeo.
Agora, quando voltarmos, eu lhes mostrarei como fazer isso.
Certo.
Como você foi?
Bem, realmente, tudo o que você precisava fazer era pegar isto, copiá-lo e colocá-lo aqui.
Ligue, vá até a van e depois desça.
E seu destino definido.
Você só quer colocar uma van.
E depois, aqui em cima, em sua folha, vamos para a van.
Muito bem.
Portanto, antes de podermos brincar, temos que dar um pontapé na árvore com um processo, porque ela não está realmente
executando seu processo.
E se entrarmos em nosso código de árvore de comportamento, você verá que ele está pronto para executar a primeira criança aqui em
processo.
Mas não estamos chamando isso.
Portanto, de volta ao nosso código, na verdade, precisamos fazer um processo de pontos de árvore como esse para dar o pontapé inicial.
Agora, olhando novamente através de nossa árvore, aqui está nossa árvore.
Temos então um nó intermediário que é apenas um nó genérico no momento.
Modificaremos isso para outra coisa um pouco mais tarde, mas estamos deixando isso no Nó quatro.
Agora, se entrarmos no Nodo e dermos uma olhada no processo dos nós, você pode ver
que ele vai retornar o sucesso, o que é meio inútil para nós porque queremos que ele vá e realize seus eventos infantis.
Portanto, em vez disso, vou apenas substituir isto aqui pelo mesmo
código que tenho na árvore de comportamento, que vai ser o ponto de criança atual.
Processo.
Agora, isto ainda não é perfeito, mas é o suficiente para realmente colocar parte de nossa árvore em funcionamento.
Portanto, economize isso.
Salve seu comportamento de borracha e, em seguida, vamos lá e aperte o jogo só para que você possa ver algo funcionando no final
aqui.
Muito bem, ótimo.
Lá vamos nós.
Então, ele vai embora.
Ele passou do nível superior da raiz da árvore para o aço para baixo para ir para o diamante.
Agora, ele vai parar por aí.
Ele não vai dar a volta e voltar para a van, porque se você der uma olhada no código, nós
estamos apenas correndo o primeiro filho de qualquer nó em particular.
A van é uma segunda criança de aço, portanto, não está funcionando de fato.
E a forma como temos atualmente nosso código de malha de navegação configurado para ir ao destino também não está realmente
correta, mas você pelo menos tem algo que funciona e que pode ser testado.
Ok, então essa é a nossa ação.
O que vamos fazer quando voltarmos na próxima palestra é consertar o código de malha de navegação e colocar algum
tipo de código adequado para ir ao Diamond e ir ao Van.