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

Esto com um problema com zumbi chefe

Ola,

Quando o jogador atira no chefe ele não morre ja atire muitas vezes ele nada acontese:

aqui codigo que eu fiz:

public class ControlasBoss : MonoBehaviour, IMatavel {

    private Transform jogador;
    private NavMeshAgent agente;
    private Status statusChefe;
    private AnimacaoPersonagem animacaoBoss;
    private MovimentoPersonagem movimentoBoss;

    private void Start(){
        jogador = GameObject.FindWithTag("Jogador").transform;
        agente = GetComponent<NavMeshAgent>();
        statusChefe = GetComponent<Status>();
        agente.speed = statusChefe.Velocidade;
        animacaoBoss = GetComponent<AnimacaoPersonagem>();
        movimentoBoss = GetComponent<MovimentoPersonagem>();
    }

    private void Update(){
        agente.SetDestination(jogador.position);
        animacaoBoss.Movimentar(agente.velocity.magnitude);

        if(agente.hasPath == true){

            bool estouPertoDoJogador = agente.remainingDistance <= agente.stoppingDistance;

            if(estouPertoDoJogador){

               animacaoBoss.Atacar(true);
               Vector3 direcao = jogador.position - transform.position;
               movimentoBoss.Rotacionar(direcao);

            }else{
               animacaoBoss.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(){
        animacaoBoss.Morrer();
        movimentoBoss.Morrer();
        this.enabled = false;
        agente.enabled = false;
        Destroy(gameObject, 2);
    }

}

Na aba Inspecto do chefeDeFase esta marcado no Status vida inicial 10

2 respostas

Oi, Guilherme, tudo bem?

E como está a chamada na Bala que chama a parte de TomarDano() ?

O método parece correto o importante agora é saber se ele está sendo chamado. Você pode também deixar a variável de Vida pública para verificar se seu valor está caindo (ou usar o modo Debug do Inspector que fica no canto superior direito clicando na seta para baixo).

solução!

Já resolvi o problema era: script ControlaBoss estava escrito errado no script bala.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software