Boa Noite
Estou com problemas na Rotação do chefe, em alguns momentos ele não rotaciona enquanto executa a ação de ataque e a rotação dele está "quebrando" nas vezes que ele rotaciona.
Já deixei marcado o " is Kinematic" para ele.
Segue codigo:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class ControlaChefe : MonoBehaviour, IMatavel
{
private Transform Jogador;
private NavMeshAgent agente;
private Status statusChefe;
private AnimacaoPersonagem animacaoChefe;
private MovimentoPersonagem movimentoChefe;
public GameObject kitmedicoPrefab;
private void Start()
{
Jogador = GameObject.FindWithTag("Jogador").transform;
agente = GetComponent<NavMeshAgent>();
statusChefe = GetComponent<Status>();
agente.speed = statusChefe.Velocidade;
animacaoChefe = GetComponent<AnimacaoPersonagem>();
movimentoChefe = GetComponent<MovimentoPersonagem>();
}
private void Update()
{
agente.SetDestination(Jogador.position);
animacaoChefe.Movimentar(agente.velocity.magnitude);
if (agente.hasPath == true)
{
bool estoupertodoJogador = agente.remainingDistance <= agente.stoppingDistance;
if (estoupertodoJogador == true)
{
animacaoChefe.Atacar(true);
Vector3 direcao = Jogador.position - transform.position;
movimentoChefe.Rotacionar(direcao);
}
else
{
animacaoChefe.Atacar(false);
}
}
}
void AtacaJogador()
{
int dano = Random.Range(30, 40);
Jogador.GetComponent<ControlaJogador>().TomarDano(dano);
}
public void TomarDano(int dano)
{
statusChefe.Vida -= dano;
if(statusChefe.Vida <= 0)
{
Morrer();
}
}
public void Morrer()
{
animacaoChefe.morrer();
movimentoChefe.Morrer();
this.enabled = false;
agente.enabled = false;
Destroy(gameObject, 2);
Instantiate(kitmedicoPrefab, transform.position, Quaternion.identity);
}
}