Na palestra anterior, montamos nossa classe de estado de base.
Agora vamos herdar disso e criar um comportamento ocioso e de patrulhamento para nosso caráter, certo?
Portanto, logo abaixo desse estado de classe base, vamos criar uma classe pública chamada
Idol e ela vai herdar do estado.
Assim.
Certo.
Portanto, a primeira coisa que vai precisar é de seu construtor.
Portanto, queremos o ídolo público e então ele terá todas as coisas que nosso estado tem.
Portanto, vamos copiar tudo isso porque não adianta digitarmos tudo novamente e simplesmente
colocarmos isso lá dentro.
E depois disso, também, vamos colocar na base e correr através do NPC, o agente.
O ano.
E o jogador.
Detalhes apenas para passá-los, uma vez que a base vai realmente armazenar isso para nós de qualquer maneira.
E então tudo o que realmente precisamos fazer dentro deste construtor é dar um nome ao nosso estado.
Portanto, o nome é igual a ponto de estado.
Ocioso para saber o que é.
Certo.
A próxima coisa que vamos colocar aqui, é apenas rolar um pouco para baixo é agora a nossa entrada.
Então, a anulação pública, a anulação, a entrada e depois dentro da entrada antes de querer colocar a base entra automaticamente para você se você estiver
usando o Visual Studio, o que não tem problema porque você quer executar isto de qualquer maneira.
E se tivermos uma olhada aqui em cima o que nossa base entra está fazendo, está preparando o cenário para atualizar.
Isso significa que não precisamos fazer isso aqui em baixo.
Mas o que precisamos fazer quando entramos no estado de Ídolos é acionar a animação de Ídolos.
Então isso vai ser o gatilho do anim dot set.
É Otto.
E se você der uma olhada no animador, verá que há um gatilho lá dentro chamado Otto,
que o leva de qualquer outro estado que não esteja ocioso de volta ao ocioso.
Certo.
Então essa é a nossa entrada.
Agora, é claro, precisamos de uma anulação pública para atualização.
E dentro da atualização novamente, vamos executar a atualização da base como a última coisa.
Mas também queremos fazer aqui a transição para nosso próximo estado.
Portanto, lembre-se que eu disse anteriormente no último vídeo, é que em algum lugar dentro da atualização,
ela tem que sair de lá.
Portanto, este é o único lugar que vai fazer isso porque a atualização é essencialmente
como um pequeno laço de minijogo que vai passar por cima e de novo para o seu estado e cuidar do processamento dele.
E para sair da atualização para sair, é preciso ter algum tipo de condição aqui dentro.
Portanto, vamos fazer um valor aleatório.
Portanto, se o intervalo de pontos aleatórios de 0 a 100 for inferior a dez, então 10% do tempo o que vamos fazer é ir para
a próxima etapa.
Portanto, apenas dentro de alguns parênteses aqui, colocaremos o próximo estado igual a nova patrulha e essa patrulha
vai precisar do agente NPC, Adam e jogador.
Ainda não escrevemos a patrulha, mas vai ser o novo estado.
E então, aqui dentro nós realmente vamos ao palco igual à saída do evento e o que isso vai fazer da próxima
vez que o processo que está aqui em cima vier é jogá-lo no palco de saída, que então retornará
o próximo estado que acabamos de montar aqui.
Certo.
E, finalmente, temos que colocar em nosso vazio público e isso será para a saída.
E aqui temos que manter nossa base e vamos colocar no gatilho de rearme Adam Dot.
Is.
Ocioso.
Agora, isto é apenas um pequeno truque a ver com o sistema McAdam se você acionou algo aqui
em cima.
O que ele faz é como se colocasse um evento no sistema que não é usado até a animação que se destina
a acionar as corridas.
Se aquela animação não funciona ou não precisa ser acionada, então aquele pequeno evento ainda está ali.
E o que ele pode fazer é causar alguns problemas mais tarde quando você vai acionar a marcha
e depois seu personagem não anda é porque pode ter havido um velho está ocioso ainda sentado na fila.
Então, reinicializando na saída, significa que qualquer coisa que nós jogamos lá dentro que não precisava
ser, vai apenas ser tirada e vai apenas limpar aquela animação para nós.
E isto é o que quero dizer ao conter todos os comportamentos necessários apenas dentro de um estado.
Portanto, isto são coisas relativas ao ocioso e como você sai do ocioso, e é isso.
Não queremos mais nada.
Não queremos verificar nenhum outro estado relacionado a outras coisas e coisas do gênero.
Trata-se apenas do ocioso.
E agora vamos criar a patrulha porque chamadas ociosas em patrulha e então podemos realmente ter algo funcionando
que você pode ver.
Assim, sob o estado ocioso nos estados, ponto KSFO acrescentará patrulha.
Portanto, será uma patrulha de classe pública que herdará do Estado.
O Estado precisa mover seu caráter pelos diferentes pontos de passagem.
Portanto, precisamos de um índice para contar através daqueles pontos de passagem que estão em nossa matriz que criamos ou,
pelo menos, que criamos no ambiente do jogo.
Então comecemos com uma int para o índice atual e vamos fazer isso menos um.
E vamos criar nosso construtor.
Portanto, patrulha pública.
Agora, isto vai ter tudo o mesmo que colocamos para ociosidade.
Portanto, vamos pegar tudo isso para nos salvar, digitando novamente.
Copie-o, e vamos colocá-lo aqui.
Certo.
Então, dentro disto, o que vamos fazer é colocar o nome para afirmar.
Patrulha de pontos.
A velocidade do agente para e o ponto do agente é parado igual a.
Falso.
Agora você pode parar um agente e fazer com que um agente se movimente por um determinado caminho.
Se você mudar, este valor é interrompido.
Portanto, se o agente está atualmente fazendo outra coisa, nós realmente queremos pará-lo
neste ponto porque vamos dar-lhe outro, eu acho, destino a seguir.
A outra coisa que você vai notar aqui é este Agente Veloz, que é outra propriedade de agente de malha de navegação,
e é a rapidez com que seu personagem vai se mover.
Agora, neste caso, quando eu tenho UG andando por aí ou, você sabe, fazendo a animação da caminhada, então uma velocidade de dois
quando ele se move parece não ser muito ruim ao ponto de garantir que ele não pareça estar
deslizando no chão.
Portanto, isso é algo mais com o qual você pode considerar trabalhar e coordenar.
Não acrescentamos um agente que se acelera ao ocioso.
Obviamente no estado ocioso, o agente estará parado, mas como o agente não tem um caminho que
se mova em sua malha de navegação, ele estará parado por padrão de qualquer forma.
A velocidade do agente, neste caso, só entra em jogo.
Se o agente precisar se mover por um caminho, isso não significa que, se você definir para dois, o agente apenas começará
a se mover na velocidade de dois.
É só se tiver um caminho, certo?
Portanto, é tudo o que você precisa dentro de sua patrulha.
Ok, então vamos descer e agora vamos colocar em nossa entrada nossa atualização e nossa saída.
Portanto, vai ser uma anulação pública, entrada nula.
E vamos apenas copiar isto e teremos três deles.
Portanto, queremos um para atualização.
Faça esta atualização.
Assim.
Atualizar e depois fazer desta a saída.
E sair.
Muito bem, então na entrada, o que devemos fazer?
Bem, queremos agarrar nossa lista de nossos pontos de passagem e, na verdade, voltaremos e faremos um pouco mais de trabalho
aqui mais tarde.
Não precisamos guardar nossos waypoints em nada porque lembre-se do ambiente do jogo,
Singleton tem esses.
Portanto, por enquanto, vamos deixar isso de fora da entrada.
Mas o que não queremos fazer é colocar e colocar o gatilho e o conjunto é caminhar para que a animação comece, de modo que seu agente estará
obviamente caminhando agora para se mover por esses pontos de passagem.
Vamos fazer isso dentro de nossa atualização.
E bem, antes de mais nada, verifique se o agente.
Ainda não terminou sua caminhada atual entre um ponto de passagem e o outro.
Portanto, se a distância restante do agente for inferior a um.
Então vamos passar para o próximo ponto de passagem.
Portanto, se o índice atual é maior do que o número de pontos de passagem, então é aqui que entra o nosso
singleton.
Pontos de verificação de ponto único de ponto, contagem de pontos.
Certo.
Acabo de perceber, depois de ter ido muito mais longe neste vídeo, é que esta linha vai
lhe dar um erro.
Antes de prosseguir, certifique-se de que seu índice atual seja maior ou igual à contagem
do ponto de verificação menos um.
Então essa é a linha que você deveria estar atualizando e manter assim.
Caso contrário, o resto do código vai realmente contar fora do intervalo do número de pontos
de verificação que você tem.
Então você não verá esta linha assim no resto do vídeo, mas certifique-se
de manter a sua assim para evitar que o erro aconteça, então o índice atual será igual a zero.
Portanto, vamos chegar ao final da lista de pontos de passagem e mudar de volta para zero.
Caso contrário, só queremos ir para o próximo.
Assim, o índice atual é igual ao índice atual mais um ou o índice atual mais mais um como esse.
E, uma vez que tenhamos isso, podemos definir o destino.
Assim, iremos ao agente ponto definido de destino e esse destino será esse ponto de passagem particular.
Portanto, será um ambiente de jogo, pontos de verificação de ponto único de um botão.
No índice do índice atual.
Agora, o destino definido realmente precisa de um vetor três, portanto será a posição do ponto de transformação daquele
ponto de passagem em particular.
Certo.
Entendeu tudo isso?
E então só temos que acabar com esse limite de parênteses, torná-lo apenas um pouco maior para que você possa ver todo esse
código e você deve estar obtendo uma sensação realmente boa dos singletons neste ponto é como é fácil que depois de configurarmos
essa lista de pontos de verificação, podemos realmente voltar e simplesmente pegá-los aqui sem
tê-los passado por todos eles.
Portanto, isto vai contar em todos os nossos pontos de passagem e depois mover o agente em um após o outro.
Agora, o índice atual, se você se lembrar corretamente no topo aqui, está definido para menos um.
Na verdade, não queremos tentar passar de menos um porque não há um para o índice atual.
Assim, na entrada também adicionaremos no índice atual igual a zero para que comecemos no primeiro.
Certo.
Então essa é a atualização.
Agora, o que vai para a saída?
Bem, na verdade não muito.
Tudo o que queremos fazer é ter certeza de que reiniciamos o gatilho para a caminhada como fizemos com nosso ídolo.
Então, Adam Dot reinicializou o gatilho.
Is.
Caminhando.
E é praticamente isso.
Agora, esta patrulha não faz referência.
Qualquer outro estado.
Certo.
E a outra, as referências ociosas à patrulha.
Portanto, no que nos diz respeito, neste momento, isto é o suficiente para nos levar a usar
a patrulha.
Certo.
Assim, quando voltarmos no próximo vídeo, escreveremos a classe dos olhos, que conduzirá todos esses estados.