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

zumbis não atacam mais!!

os zumbis não atacam mais fiz alguma coisa errada?

Edit1: fica dando vários erros no console:NullReferenceException: Object reference not set to an instance of an object ControlaInimigo.FixedUpdate () (at Assets/scripts/ControlaInimigo.cs:47)

e NullReferenceException: Object reference not set to an instance of an object ControlaInimigo.FixedUpdate () (at Assets/scripts/ControlaInimigo.cs:51)

Script: Animacoespersonagem

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Animacoespersonagem : MonoBehaviour
{
    private Animator meuAnimator;


    private void Awake()
    {
        meuAnimator = GetComponent<Animator>();
    }

    public void Atacar(bool estado)
    {
        meuAnimator.SetBool("Atacando", estado);
    }
}

Script:ControlaInimigo;

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ControlaInimigo : MonoBehaviour
{

    public GameObject Jogador;
    public float Velocidade = 5;
    private Rigidbody rigidbodyInimigo;

    private MovimentoPersonagem movimentaInimigo;
    private Animacoespersonagem animacaoInimigo;

    // Use this for initialization
    void Start()

    {
        Jogador = GameObject.FindWithTag("Jogador");

        animacaoInimigo = GetComponent<Animacoespersonagem>();
        movimentaInimigo = GetComponent<MovimentoPersonagem>();
        AleatorizarZumbis();
    }

    // Update is called once per frame
    void Update()
    {

    }

    void FixedUpdate()
    {
        float distancia = Vector3.Distance(transform.position, Jogador.transform.position);

        Vector3 direcao = Jogador.transform.position - transform.position;

        movimentaInimigo.Rotacionar(direcao);

        if (distancia > 3)
        {

            movimentaInimigo.Movimentar(direcao, Velocidade);



            animacaoInimigo.Atacar(false);
        }
        else
        {
         animacaoInimigo.Atacar(true);
        }
    }
    void AtacaJogador()
    {
        int dano = Random.Range(20, 30);
        Jogador.GetComponent<Controlajogador>().TomarDano(dano);

    }
    void AleatorizarZumbis()
    {
        int geraTipoZumbi = Random.Range(1, 28);
        transform.GetChild(geraTipoZumbi).gameObject.SetActive(true);
    }
}


2 respostas
solução!

Oi, Aparecida, tudo bem?

Você colocou os novos scripts MovimentoPersonagem e AnimacoesPersonagem no seu inimigo?

Quer enviar seu código pra gente? Você pode usar um .zip do seu projeto subindo num site público de hospedagem como Google Drive, Dropbox, etc. deixando o link público e colar ele aqui :)

o problema era no AnimaçoesPersonagem que eu não tinha associado ao meu inimigo...obrigada professor ajudou bastante.