Bem-vindo de volta à parte dois da produção do comportamento de couro.
Certo.
Até agora, temos nosso agente e conseguimos colocá-lo do outro lado de um esconderijo, neste
caso a árvore, e depois empurrá-lo a uma certa distância ao longo do vetor.
Isso é do policial para a árvore e além, você sabe, para uma distância de dois ou uma distância de cinco ou uma
distância de dez.
Agora, o que acontece se você acabar com objetos de tamanhos diferentes?
Bem, a posição que medimos o vetor policial de e através é o centro do próprio modelo real.
E o centro da árvore, neste caso, está no centro de sua base.
Agora vai funcionar para a árvore.
Mas o que acontece quando queremos projetar algo um pouco maior e dizemos que ainda queremos ir a uma distância
de dois?
Bem, não podemos fazer isso.
Obviamente, se algo fosse como um tamanho de dez, o ponto estaria dentro do nosso objeto escondido e, portanto, não seríamos
capazes de calculá-lo para a rede de malha.
E como já vimos antes, a malha não gosta de tentar definir posições para seus agentes para pontos
que não existem na malha.
E em outros casos, quando seu agente não puder realmente chegar ao seu destino, se você tiver
um código que tenha que lidar com isso, então você nunca conseguirá chegar ao seu esconderijo para continuar
e fazer outra coisa.
Então, como consertar isso?
Bem, lembra-se do colisor de caixas que colocamos na árvore?
É aí que entra a questão.
O que vamos fazer é lançar um raio do copo através da árvore e depois o que vamos
fazer é descobrir onde esse raio intercepta o outro lado do colisor.
Portanto, o colisor que está no fundo da árvore porque é basicamente onde seu agente pode ir e
ficar.
E isso é o mais próximo que o agente pode ficar do obstáculo ou do esconderijo sem estar dentro
dele.
Então, como fazemos isso?
Bem, na verdade não é tão fácil quanto parece, porque você pode lançar um raio, você pode fazer
um molde de raio e atingir um colisor no lado da frente, mas não pode fazê-lo do outro lado, pois está viajando através dele.
Portanto, quando sai do colisor, não há maneira de detectar isso.
Portanto, o que temos que fazer é pegar nosso raio e empurrá-lo através do colisor.
E depois, quando sai do outro lado, queremos virá-lo e depois enviá-lo de volta.
E então, onde quer que acerte do outro lado à medida que volta, é aí que calculamos nosso
esconderijo para não sabermos que esse esconderijo estará bem contra nossa malha ou nosso esconderijo de obstáculos, árvore, o que
quer que estejamos usando como nosso esconderijo.
Portanto, vamos implementar isto.
Vamos voltar ao nosso código bot.
Vamos, antes de tudo, pegar a pele inteira e copiá-la e colá-la porque é a nossa base que queremos
construir e vamos chamar isso de algo diferente.
Então vamos chamar isso de esconderijo inteligente.
Então você tem duas cópias de um mecânico de esconderijos se quiser usá-los, e então colocaremos aqui também um esconderijo
inteligente.
Para que possamos executar este.
Agora, o que queremos fazer ainda é encontrar a árvore mais próxima.
Portanto, temos aqui as coisas certas.
Mas o que precisamos fazer depois que tivermos a árvore mais próxima é pegar nosso vetor para aquela árvore mais próxima,
virá-la e fazer um molde de raio dela antes de montarmos nossa busca.
Portanto, as coisas que vamos precisar lembrar de ter passado por isto por loop são o lugar escolhido, o que
já estamos conseguindo.
Também é preciso lembrar a direção escolhida.
Assim, o vetor três escolheu a direção que será igual.
Vetor 3. 0.
E também queremos obter o objeto de jogo que estamos lembrando.
Portanto, um objeto de jogo escolhido geo, que é a árvore ou seja lá o que for que você escolheu para se esconder atrás.
Portanto.
Bem, ponto por exemplo, ponto fica escondido e vamos colocar isso logo no primeiro, de modo que basicamente
o inicializamos para algo.
Certo.
Então, dentro disto, se as declarações em que escolhemos aquela que achamos que é a mais próxima depois do Ch chosen
Spotless, basta registrar nossa direção escolhida.
Assim, nosso cervo escolhido será nosso cervo escondido e então nosso objeto de jogo escolhido será este esconderijo
mundial na posição I.
Muito bem.
Portanto, agora que temos esses valores, vamos descer antes de procurar e fazer nossa pequena
classe REI para descobrir onde o local está atrás da árvore ou atrás do colisor, onde podemos ir e sentar nosso agente a seguir fazê-lo.
Antes de mais nada, vamos conseguir o colisor que está sobre o objeto.
Por isso, vamos colidir, esconder colisões é igual ao ponto de objeto de jogo escolhido, obter componente.
Colisor.
Agora estamos fazendo aqui um componente que não é a coisa mais otimizada a ser executado, mas realmente
não há outra opção de onde colocar isso.
Acho que você poderia percorrer todos os objetos do mundo enquanto os cria em sua matriz
mundial aqui e manter outra matriz de apenas os colididores para usar.
Mas também nos lembramos de que a pista vai garantir que não vamos correr isso o tempo
todo.
Portanto, não deve ser muito cansativo em seu sistema.
Muito bem, então temos agora nosso colisor.
Vamos criar nosso raio que vai na outra direção.
Portanto, vamos chamá-lo de nosso raio traseiro e isso vai se igualar a um novo raio.
Do local escolhido.
Na direção negativa escolhida e
precisamos normalizá-la porque o raio traseiro precisa de uma direção normalizada.
Portanto, agora estamos voltando na outra direção.
Agora, o que você pode querer fazer também é com este aqui é empurrar para fora este raio pelo qual você está passando porque está criando este esconderijo
a uma distância de dez metros e depois dando meia volta e voltando para o outro lado.
Agora, se seu objeto for muito maior que dez distâncias para atravessar, você ainda vai acabar
sentado no centro dele.
E quando você faz uma projeção para o outro lado, você não terá voltado e atingido o outro lado.
Portanto, talvez você tenha que fazer alguns testes com isso.
Está bem.
Portanto, a próxima coisa que vamos fazer aqui é criar um elenco de raios, informações sobre o sucesso.
E vamos criar uma distância de flutuação de quão longe queremos realmente projetar nosso teste avaliado, caso tenhamos
atingido alguma coisa.
Portanto, vamos dizer 100, o que é uma maneira justa de projetá-lo e garantir que esta distância aqui seja definitivamente
maior do que esta distância aqui.
Caso contrário, se você projetar isto como para uma distância de um, porque isto está a dez metros daqui, nunca
vai acertar e você vai acabar não acertando nada.
Portanto, basta observar isso.
Certo.
Então agora fazemos nosso carvão de couro, por isso é nosso ponto mais limpo reformulado e estamos usando o raio de fundo para obter informações e
distância.
Certo.
Então, o que ganhamos com isso?
Bem, obtemos o ponto de golpe na parte de trás, que vai ser armazenado dentro da informação.
Portanto, nossa posição de busca agora não será nosso lugar escolhido, mas será o ponto de informação onde o acerto
aconteceu.
Além disso, você ainda quer se afastar um pouco do objeto para dar um pouco de espaço ao agente porque o agente tem um certo tamanho
e você ainda precisa apenas empurrá-lo para longe.
Portanto, vou empurrá-la de novo para longe.
Usar nossa direção escolhida que estávamos usando antes de normalizar e multiplicá-la por cinco era bastante bom para o tamanho desses agentes em particular,
e você poderia reduzi-lo a dois, se quiser.
Mais uma vez, você teria que testá-lo com o tamanho de seus agentes e a distância que você pensa que pode
estar e sair impune.
Então, é assim que se esconde inteligente.
Vamos salvar isso.
Volte para a unidade e nós vamos pressionar o jogo.
E desta vez.
Vamos nos esconder e vamos nos esconder.
Temos aqui um olhar para cima.
Bem perto da árvore.
Agora, se baixarmos isso, volte para o barco aqui e mude esta distância para dizer duas e salve-a apenas
para ver se nos aproximamos um pouco mais desta vez.
Certo.
E ele vai dar a volta à árvore.
E.
Harding.
Bem embaixo da árvore, você pode ver ali.
Portanto, ele é simpático e próximo à árvore.
Certo.
Mas se selecionarmos aquela árvore, que é esta aqui, você verá que a posição de golpe de volta teria
sido possivelmente aqui.
Portanto, isso é o mais próximo que ele está chegando a essa posição em particular.
Lembre-se, ele não vai estar fora deste colisor porque não vai impedir o agente deste colisor.
Certo.
Vamos deixar este vídeo aqui.
Quando voltarmos, na parte três deste esconderijo, vamos modificar o comportamento da borracha para que
você possa realmente se esgueirar atrás dele com o policial.