Solução para o problema com a animação padrão dos inimigos

Nesta quarta-feira, bati cabeça tentando encontrar a solução para um problema na inteligência artificial dos inimigos: ao se iniciar o jogo, a animação padrão era repetida duas vezes antes dos inimigos começarem a se locomover e não apenas uma, que é o esperado.
A cada dia, estou conhecendo melhor o lado 2D do Unity graças ao tutorial do Jonathan Weinberger. Na seção "Enemy AI" do tutorial, ele explica que o problema da animação padrão ocorria apenas uma vez no ínicio do jogo pelo fato dela ser a primeira animação a ser computada pelo mecanismo de animação dos inimigos, mas isso não me deixou satisfeito. Eu queria eliminar essa repetição.


Muitas vezes, a solução para um problema que achamos difícil é na verdade algo tão fácil que nem cogitamos. Esta foi uma das vezes. Passei um bom tempo achando que havia um problema no código-fonte dos inimigos, que essencialmente os faz: 
  1. Verificar se o inimigo está posicionado exatamente em um dentre dois pontos que marcam a sua trajetória no jogo;
  2. Se estiver, estabelece o outro ponto como o alvo, faz o inimigo reproduzir sua animação padrão e então o faz andar até o alvo;
  3. Ao chegar no alvo, repete os processos acima.




Trecho do código-fonte que lida com a movimentação dos inimigos.


Porém, pesquisei uma série de problemas semelhantes que usuários do Unity tiveram e mesmo assim, não consegui uma solução para o meu problema. Mas foi aí que me questionei: se eu botei meu inimigo em um dos dois pontos de trajeto, fiz ele reproduzir a animação padrão sempre que estiver nesses pontos e deixei a animação padrão como a sua animação de entrada no jogo, por que não tento colocar uma animação diferente como entrada?
E assim, fui até o mecanismo de animação dos inimigos e troquei a animação de entrada para ser a animação de corrida deles, finalmente obtendo o resultado desejado. Era um problema sutil com uma solução que no final das contas, também foi sutil. Mas de qualquer jeito, fico aliviado de tê-lo solucionado.





Mecanismo de animação do inimigo Sentinela antes e depois da solução, respectivamente.





Animação do inimigo Sentinela antes e depois da solução, respectivamente.

Comentários