Nesta palestra, vamos dar uma olhada no nó seletor. O Nó Seletor permite que você
tenha muitas folhas diferentes embaixo, mas escolha apenas uma folha.
Agora você pode fazer isso aleatoriamente ou pode fazê-lo aleatoriamente, com uma certa chance de
ser escolhido.
Vamos fazer um exemplo em que nosso bot entrará em um estado ocioso, onde ele apenas olha
em torno de seu ambiente ativando o local. Para fazê-lo girar, precisamos adicionar um novo método.
Então, na classe AI, adicionaremos esta tarefa aqui chamada 'Turn' e daremos ao bot um ângulo para percorrer e, em seguida,
calcularemos um novo alvo a ser observado com base nesse ângulo de virada. Então adicionamos o ângulo de
virada que está usando este Quaternion. O método AngleAxis gira através de um ângulo em torno do eixo superior a
partir de nossa direção
para a frente e fornece um vetor que você pode adicionar à sua posição, que será um ponto distante de você, mas
nesse ângulo.
Então, definindo isso como o alvo, ele dará ao bot algo para se virar.
Assim como quando miramos o jogador aqui em cima, em vez disso,
estamos dando a ele um ângulo real para virar.
Então essa é a vez. É tudo o que precisamos fazer com nosso código antes de podermos usar a próxima Árvore de Comportamento.
Então, criar uma nova árvore de comportamento chamada 'LookAround' e é
isso que eu tenho na minha.
Portanto, este LookAround. O arquivo BT terá uma 'sequência' e essa sequência será um
Nó Seletor aleatório, o LookAtTarget e o WaitRandom. Sob o nó seletor 'aleatório', existem quatro versões possíveis
diferentes da curva, para que possamos girar 90 graus, podemos girar -90 graus, podemos girar 145 graus
ou podemos girar -27 graus e tê-las em 'aleatório' significa que
toda vez que isso é executado, apenas um deles é escolhido e é
a direção a seguir.
Então o LookAtTarget irá girar o bot nessa direção específica e, depois
disso, teremos um WaitRandom.
Agora, o WaitRandom é semelhante ao Wait que vimos antes que vem com o sistema
Behavior Tree,
mas você pode atribuir 2 valores aleatórios e escolherá uma quantidade aleatória de tempo para esperar entre esses 2 valores.
Portanto, pode esperar 2, pode esperar 3, pode esperar 4. 5)
Isso só vai lhe dar um pouco de variedade.
Então, basta salvar isso e, em seguida, o que você quer fazer é selecionar seu Droid e
arrastar e soltar sua Árvore de comportamento LookAround nela. Verifique se você tem o belo script rosa com os parâmetros
vermelhos, o que significa
que está tudo pronto, você tem tudo definido no script e pressione Play.
Agora, se você assistir a sua Árvore de Comportamento (atualmente a minha está esperando, lá vai), ela mudará aleatoriamente
e você verá uma das diferentes curvas a seguir e é completamente aleatória, para que você não saiba
qual você receberá e
o bot voltará a ele e você poderá ver pelo comportamento do bot, que é como
um estado ocioso, ele só está olhando em volta.
Então isso não é tão ruim. Se você deseja forçar um nó específico a acontecer mais vezes do que qualquer
outra coisa, o que você pode fazer com o nó aleatório (se abrirmos nosso script novamente) é colocar valores ponderados depois dele, para
cada um deles.
Portanto, se você deseja que o primeiro aconteça primeiro (e principalmente), vamos definir isso para 5 e depois o
restante para 1.
Estes são apenas valores ponderados, não são uma porcentagem de chance ou algo assim.
Portanto, o que tiver um número maior, acontecerá com mais frequência.
Nesse caso, você fará com que o primeiro (Turn 90) aconteça cinco vezes mais do que você conseguirá os 1s
devido a esse peso aqui.
Portanto, não se preocupe em adicionar 100 ou algo assim. De volta ao Unity, pressione Play e veja
como ele escolhe o que usar no Inspector e você verá que, mais frequentemente, escolhe o primeiro e continuará fazendo
isso muito mais do que os outros,
o que será na mesma ponderação e isso é praticamente tudo o que existe nos nós seletores.