Olá Paulo! Tudo bem?
Parece que você está enfrentando problemas com a transição de animação no Unity. Vamos tentar resolver isso juntos!
Com base no que você descreveu, aqui estão algumas etapas que você pode verificar para garantir que tudo esteja configurado corretamente:
Verifique os Parâmetros no Animator: Certifique-se de que o parâmetro booleano que você criou no Animator está corretamente configurado. No seu caso, parece que você usou um parâmetro booleano para controlar a transição. Verifique se ele está realmente sendo alterado no script quando a condição de movimento é atendida.
Transições no Animator: No Animator, verifique se a transição entre anim_idle e anim_walk está configurada com a condição correta. A seta de transição deve ter a condição isMoving definida como true para ir de idle para walk, e false para voltar de walk para idle.
Has Exit Time: Certifique-se de que a opção "Has Exit Time" está desmarcada, pois isso pode impedir a transição imediata entre as animações.
Script de Controle de Movimento: Verifique o script que controla o movimento do personagem. Ele deve estar atualizando o parâmetro isMoving no Animator. Algo como:
Animator animator = GetComponent<Animator>();
bool isMoving = Mathf.Abs(Input.GetAxis("Horizontal")) > 0.1f;
animator.SetBool("isMoving", isMoving);
Isso garante que o parâmetro isMoving é atualizado com base na entrada do jogador.
Espero que essas dicas ajudem a resolver o problema!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.