Meu chefe se aproxima de mim mas n me ataca.
meu script: 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 MovimentaPersonagem movimentoChefe;
private void Start()
{
jogador = GameObject.FindWithTag("Player").transform;
agente = GetComponent<NavMeshAgent>();
statusChefe = GetComponent<Status>();
agente.speed = statusChefe.Velocidade;
animacaoChefe = GetComponent<AnimacaoPersonagem>();
movimentoChefe = GetComponent<MovimentaPersonagem>();
}
private void Update()
{
agente.SetDestination(jogador.position);
animacaoChefe.Movimentar(agente.velocity.magnitude);
if (agente.hasPath == true)
{
bool estouPertoDoJogador = agente.remainingDistance <= agente.stoppingDistance;
if (estouPertoDoJogador)
{
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<ControladorJogador>().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);
}
}