Bug no transform do Zumbi ao alcançar o Player

Na aula Inimigo Zombie - Ataque e Hitbox, falando uns 40 segundos para acabar a aula, o zumbi tem exatamente 1 frame em que sua rotação buga no eixo horizontal logo quando sai da animação de andar para atacar, como se o navmesh estivesse tantando alcançar a câmera ao invés do root do Player. Estou tendo o mesmo problema, já mexi na transição de Any para Ataque achando que poderia ser, mas não é, nenhhuma colisão está causando isso, não é problema com a hitbox, e aparentemente não é o Root Transform da animação, não é a malha do NavMesh até onde testei.

Alguém tendo o mesmo problema e que conseguiu resolver?

Fala, Ricardo!
Analisei o projeto aqui e notei que esse pequeno glitch realmente acontece às vezes. Isso ocorre porque, no método PrepararAtaque, dentro do script Inimigo, o inimigo está sendo rotacionado de forma brusca em direção ao jogador.

Essa rotação manual não é necessária, já que o próprio NavMesh Agent cuida da orientação automaticamente. Por isso, você pode simplesmente comentar ou remover esses comandos de rotação, deixando o método assim:

void PrepararAtaque()
{
    //Vector3 direcaoParaJogador = (jogador.position - transform.position).normalized;
    //Quaternion rotacaoParaJogador = Quaternion.LookRotation(direcaoParaJogador);
    //transform.rotation = rotacaoParaJogador;

    animator.SetTrigger("Atacar");
    tempoProximoAtaque = Time.time + intervaloEntreAtaques;
}

Com isso, o comportamento deve ficar mais suave. Qualquer coisa, me avisa!

1 curtida

Boa professor, certeiro como sempre rsrs, muito obrigado pela ajuda! Estou quase finalizando o módulo e criei uma lista de alterações de melhoria, mesmo sendo um projeto “clone”, quero refinar e finalizar com o sentimento de “eu jogaria esse jogo”.

Perfeito! Sempre dá para melhorar e adicionar novos detalhes.
Quero ver o resultado final haha :smile::smile:

1 curtida