Esconder-se tem que ser um dos meus comportamentos de direção favoritos porque é um pouco sorrateiro e você também pode
criar coisas que não estão apenas tentando se esconder de um personagem em particular, mas que estão se escondendo, uma vez que
estão meio que se escondendo.
Então, esconder e perseguir, o que lhe dá uma dinâmica realmente interessante em um ambiente de jogo.
Portanto, para fazer isto, é realmente muito simples, mas há muito trabalho envolvido.
Primeiro de tudo, você precisa de um monte de obstáculos que seu agente possa esconder atrás.
Portanto, temos nossa árvore que tem estado ali sentada o tempo todo.
Vamos usar isso agora para descobrir onde é o melhor lugar para se esconder.
Se o ladrão vai se esconder do policial, então o que fazemos é pegar um vetor do policial para a árvore
e continuar passando pelo centro da árvore para o lado oposto, o que significa que se você está
do lado exatamente oposto da árvore do policial, então obviamente você está escondido do policial.
Porque se você tentasse fazer uma reformulação do policial para o ladrão ou do ladrão para o policial, eles não seriam
capazes de se verem, porque isso atingiria a árvore e, portanto, você está escondido.
Portanto, antes de mais nada, o que precisamos fazer é definir quais são todos os esconderijos do mundo real.
Portanto, de volta ao nosso ambiente, se dermos uma olhada na hierarquia sob o objeto ambiente, você
encontrará o objeto árvore que está sentado lá há bastante tempo e se clicarmos nele, veremos que
está etiquetado com a etiqueta escondida em minúsculas.
Agora se o seu não for por causa da forma como é importado, certifique-se de criar uma
nova etiqueta e colocar a árvore para se esconder.
E então podemos usar essa etiqueta de ocultação para qualquer objeto que você queira colocar no ambiente para se esconder.
Lembre-se também que a árvore é uma estática de navegação.
Certo, então isso significa que aqui temos tudo definido para a navegação estática.
E quando então cozinhamos nossa malha de navegação, ela vai excluir a árvore.
Por isso, se apenas acertarmos o cozimento e ele nos fizer um cozimento rápido, vamos descobrir que ele foi eliminado como uma mancha que você
pode suportar.
Portanto, se você for e acrescentar várias árvores, volte sempre e faça isso, cozinhe em sua navegação.
Certo, então agora que temos isso, também queremos fazer da árvore um colisor agora, não porque queremos que nosso personagem
colida com ela, mas porque em algum momento queremos ser capazes de lançar um raio através dela
e ver se conseguimos ver o copo.
Portanto, selecione a árvore e vá até o inspetor, adicione o componente e eu vou adicionar um colisor.
Queremos acrescentar um colisor de caixas.
Isso é só porque vai ser simples.
Agora com a árvore, você terá um colisor de caixa que fica bem arrumado ao redor daquela árvore.
Você poderá ver na vista de cena.
Se você tem algum outro objeto e ele não se encaixa perfeitamente, então você pode querer apenas ajustar
o centro e o tamanho no inspetor para isso.
Collider E agora que você tem esta árvore com a etiqueta e o colisor, você poderia essencialmente fazer um
pré-fabricado dela ou copiá-la e colá-la ou duplicá-la ao redor do ambiente.
E então você tem muitos lugares para se esconder, certo?
Portanto, temos todos esses esconderijos.
Temos um no momento.
É sempre bom testar com apenas uma coisa, para que possamos descobrir o que deu errado.
Se isso acontecer, precisamos pegar todas essas árvores logo no início do jogo de prensagem.
Portanto, vou criar um singleton e vou chamar esse singleton de o mundo, e ele
vai se segurar a todas as nossas posições de esconderijo.
Então vamos chamar isso de mundo e vamos entrar aqui.
Agora, o que vamos fazer com isto não é transformá-lo em um comportamento mono.
Vamos nos livrar disso e vamos torná-lo uma classe fechada ao público.
E então vamos criar uma instância mundial privada estática apenas lida, que se igualará a um novo mundo.
E também criaremos um conjunto de objetos de jogo estático privado que segurará todos os nossos obstáculos e
vamos chamá-los de esconderijos.
Não que eles criem mais todos os nossos construtores de um mundo tão estático.
E neste construtor, ele vai realmente atravessar o mundo e pegar todos os esconderijos.
Portanto, esconder pontos.
Igual a um objeto de jogo.
Encontre objetos de jogo com tag.
Certifique-se de encontrar objetos de jogo para o ninho, para que você consiga toda a matriz.
E nós os queremos com etiquetas com couro que estão todos em minúsculas.
Então, precisamos acabar com nosso singleton um mundo privado.
O que é basicamente vazio e um mundo público estático.
Instância.
Com a.
Entre lá.
Então, obtenha uma instância de retorno.
O que seria uma minúscula I porque estamos falando sobre este aqui em cima, I.
E então teremos também outro método de objeto de jogo público.
Um direito, que fica com os esconderijos.
Portanto, procure esconder-se.
E lá dentro, vamos voltar aos esconderijos.
Agora isso significa que este objeto vai buscar todos os esconderijos e quaisquer agentes
no meio ambiente só têm que pedir ao mundo por eles.
Singleton E eles não têm que continuar a recebê-los o tempo todo.
Ok, então economize isso.
E agora vamos voltar à Unidade.
A próxima coisa que vamos fazer é mudar nosso bot para agora fazer o esconderijo.
Então, abra seu roteiro bot e vamos agora acrescentar um método de esconder.
Por isso, aqui em baixo vamos nos esconder no vazio.
Agora o que Hyde precisa fazer é encontrar o melhor esconderijo.
Agora, esse pode ser o esconderijo mais próximo se você quiser que ele se esconda muito rapidamente, ou pode ser o
esconderijo mais distante neste caso.
Vamos encontrar o esconderijo mais próximo do agente e vamos nos esconder lá.
Certo.
Portanto, precisamos de um valor de distância para manter a distância contra a qual estamos comparando as coisas.
Portanto, inicialmente, vamos apenas ajustar isso para que seja matemático ao infinito para que seja realmente, realmente grande e que qualquer coisa com a qual você
possa emparelhá-lo tenha que ser menor.
E então precisamos de um vetor três para nosso lugar escolhido.
E, inicialmente, vamos colocar isso no vetor 3. 0.
Certo.
Em seguida, vamos percorrer todos os esconderijos com um loop de quatro.
Portanto, quatro int i igual a zero i é menos do que um ponto de exemplo mundial ficar escondido.
Comprimento do ponto.
I.
E mais.
Certo.
Então vamos criar um vetor três, que será nosso esconderijo.
A direção e isso vai igualar nossa árvore.
Portanto, nossa instância mundial de pontos.
Não se esconda.
Esportes ou suportes esportivos.
Eu ponto transformado posição menos alvo transformado posição.
Portanto, este é o vetor do policial para a árvore.
Certo.
Portanto, vetor três para nossa posição de couro.
vai igualar novamente a mesma coisa.
Portanto, vou pegar toda esta posição da árvore.
Então essa é a posição da árvore.
Então o que vamos fazer é realmente acrescentar um pouco mais de espaço para que você realmente passe da
árvore.
Então, para fazer isso, basta adicionar no vetor de alta direção a isso e queremos normalizá-lo.
Portanto, a versão normalizada, para que saibamos o comprimento de uma e depois possamos estabelecer uma distância atrás daquela
árvore que queremos esconder.
Neste caso, vamos apenas nos esconder a uma distância de cinco quilômetros atrás da árvore.
E você pode brincar com isso, dependendo de quão perto você quer estar daquela árvore em particular.
E, na verdade, iremos melhorar este algoritmo mais tarde e nos livraremos desses cinco.
Mas, por enquanto, vamos definir para cinco.
Certo, então já temos isso.
Agora o que vamos fazer é verificar se a próxima árvore que aparece está realmente mais próxima.
E se for, usaremos isso como nosso local escolhido.
Portanto, queremos que se o vetor a três pontos de distância transforme a posição do ponto, se esconda, faça uma pausa.
Portanto, esta é a distância entre nosso agente e a posição de esconderijo.
Se isso é menos que distante, então é para lá que vamos e nos escondemos.
Portanto, aqui vamos colocar o local escolhido igual a um esconderijo.
Pausa.
E então faremos a atualização.
Distância.
A distância vai se igualar ao vetor três distâncias aqui que acabamos de testar.
Então, pegue isso e coloque lá embaixo.
Portanto, agora será a distância até a árvore mais próxima que encontramos até agora.
Certo.
E então terminaremos o nosso para loop.
Isto aqui deve ser discordado, não para o que é atualizado.
Tão dissidente.
E agora que já temos isso, podemos realmente ir até o local escolhido.
E se realmente quisermos ser coerentes ao invés de fazer isso, porque é isso que a Seek está fazendo de qualquer forma, usaremos
a Seek no caso de fazermos algo diferente para buscar.
Então esse é o nosso couro.
Muito simples quando se pensa sobre isso.
Poupe isso.
Agora, o que vamos fazer está em nossa atualização, vamos definir isto para estar escondido.
Ok, então vamos salvá-lo.
Agora vamos voltar à unidade, e estamos praticamente prontos para jogar e testar isto.
Então a imprensa brinca e nosso agente vai e se esconde atrás da árvore.
Certo.
Portanto, agora se eu me mudar para aqui.
Ele vai até lá e se eu me mudar novamente, ele vai até lá.
Por isso, ele está constantemente se escondendo.
Atrás da árvore, o que é bom, ótimo para nós.
Mas se você pensar no processamento que está ocorrendo agora, o algoritmo de ocultação está rodando cada atualização.
Se ele já está escondido do policial, então não precisamos continuar correndo isso até chegar um ponto em que ele não esteja
mais escondido.
E vamos corrigir isso no próximo vídeo.
Mas por enquanto, você provavelmente quer adicionar mais algumas árvores para ver como isto funciona.
Então vamos para o meio ambiente e agarrar a árvore que você tem.
Vou controlar o DH, bater a tecla W e depois apenas fazer uma nova árvore e movê-la
em torno do DH de controle e movê-la em torno do DH de controle.
E o que eu disse?
Você tem que se lembrar de fazer.
Você tem que entrar em sua navegação e tem que se lembrar de assar para ter certeza de que fez isso para a nova
malha de navegação.
Muito bem, então pressione play.
Agora ele vai se esconder atrás daquela árvore porque na verdade é a mais próxima e você pode realmente
ver isso.
E agora, devido à forma como ele está atualmente programado, talvez você não seja capaz de fazê-lo.
Forçá-lo a ir para uma árvore diferente, dependendo se ele consegue encontrar uma que esteja mais próxima.
Não.
Agora, uma maneira de fazermos isso é voltando ao código bot e nos lembrarmos destes cinco pequenos que colocamos
sobre o quão longe estamos da árvore.
Se nos escondermos atrás de uma árvore a uma certa distância daquela árvore e depois essa distância acabar ficando
mais próxima de outra árvore, mais tarde ele se moverá.
Portanto, vamos atualizar isto para, digamos, dez, o que eu acho que provavelmente vai esticar
um pouco as coisas até a distância.
Mas vamos apenas pressionar o jogo.
E.
Tem que se esconder atrás daquela árvore porque é a mais próxima, mas vai até uma distância de dez.
Portanto, vamos apenas baixar isto.
Você pode ver que ele está agora aqui.
Por isso, vou atrás dele com meu policial.
E espero que o empurrem.
Agora ele vai e se esconde atrás daquela árvore a uma distância de dez metros.
Certo.
Portanto, esse é o método básico de esconder.
Voltaremos no próximo vídeo na segunda parte e realmente melhoraremos isso.