Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Bug] PlayerAnim desativando "sozinho" ao iniciar o jogo

Depois que implementei passo a passo a animação de ataque do protagonista, percebi que a animação do "pulo" e do "caminhar" deixaram de funcionar. Percebi que o PlayerAnim "desativa" ao iniciar o jogo. Alguma sugestão de como evitar que isso ocorra?

2 respostas

Olá, Carlos! Tudo certo?

Você está enfrentando um problema até que comum em projeto Unity. Vou listar aqui algumas sugestões que podem te ajudar a resolver esse problema:

  1. Verifique os controladores de animação: certifique-se de que o Animator Controller está corretamente atribuído ao seu personagem e que as transições entre as animações estão configuradas corretamente. Às vezes, uma transição mal configurada pode impedir que outras animações sejam reproduzidas.

  2. Condições das transições: verifique se as condições para as transições entre animações estão corretas. Por exemplo, se a animação de ataque não tem uma condição de transição para voltar ao estado de "idle" ou "walk", ela pode estar bloqueando outras animações.

  3. Ordem das camadas: se você estiver usando camadas de animação, certifique-se de que a ordem das camadas está correta e que as animações em camadas superiores não estão sobrescrevendo as animações básicas.

  4. Script de controle de animação: revise o script que controla as animações para garantir que não há lógica que desative o componente Animator por engano. Verifique se há alguma linha de código que possa estar desativando o Animator ao iniciar o jogo.

Espero que essas dicas te ajudem a resolver o problema com as animações do seu personagem. Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.
solução!

PROBLEMA SOLUCIONADO:

Prezado Armando, boa noite.

Em primeiro lugar, muito obrigado pela devolutiva tao rápida.

Sou muito novato em Unity e não havia percebido que era um curso para nivel intermediário. Independente disso, acho que consegui me sair bem. Cheguei ao final, implementando tudo que o professor indicou. Claro, tive uma ajuda inestimável da IA, que foi desde comandos simples, como "como permitir que o Visual Studio Code ficasse com "wrap" (quebra de linha automática), até o problema que indiquei.

No caso, a resposta (e solução) indicada pela IA, para o componente "GameManager.Instance.InputManager.OnAttack += PlayAttackAnim;" foi:

  • PlayerAnim roda Awake() antes do GameManager
  • GameManager.Instance é null
  • NullReferenceException (msg que aparecia no rodapé do Unity).

E a solução foi "mover a assinatura" para o Start:
private void Start()
{
GameManager.Instance.InputManager.OnAttack += PlayAttackAnim;
}

A partir daí, funcionou lindamente.

Grato pela sua devolutiva. Fico imensamente feliz em ver uma comunidade paciente com os "novatos".

Abraços

Carlos