5
respostas

Zumbi não me ataca mais

Bom dia, o código estava funcionando direito ate esse ponto, mas depois que fiz a alteração o Zumbi e gerado, mas ele não muda mais a animação de andar para atacar

public class ControlaInimigo : MonoBehaviour
{

    public GameObject Jogador;
    public float Velocidade= 5;

    // Start is called before the first frame update
    void Start()
    {
        Jogador = GameObject.FindWithTag("Jogador");

        int geraTipoZumbi = Random.Range(1,28);

        transform.GetChild(geraTipoZumbi).gameObject.SetActive(true);

    }

    // 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;

        Quaternion novaRotacao = Quaternion.LookRotation(direcao);
        GetComponent<Rigidbody>().MoveRotation(novaRotacao);

        if (distancia > 2.5)
        {

            GetComponent<Rigidbody>().MovePosition
                (GetComponent<Rigidbody>().position +
                 direcao.normalized * Velocidade * Time.deltaTime);


            GetComponent<Animator>().SetBool("Atacando", false);

        }
        else
        {
            GetComponent<Animator>().SetBool("Atacando", true);
        }
    }


    void AtacaJogador()
    {
        Time.timeScale = 0;
        Jogador.GetComponent<ControlaJogador>().TextoGameOver.SetActive(true);
        Jogador.GetComponent<ControlaJogador>().Vivo = false; 
    }

}

O bloco else no fixedUpdate() não e chamado de jeito nenhum, mas quando boto o comando no if ele executa o getComponent, não sei se tem algo haver com a versão, a versão que estou usando e o unity 2018.4.12f1

5 respostas

Oi, Caio, tudo bem?

Você pode zipar seu projeto e mandar para gente num Dropbox, Google Drive, etc?

Olá Bom dia! Eu identifiquei a causa, o Capsule collider do zumbi, quando o Is trigger esta marcado, o zumbi ataca, porem ele atravessa tudo.

Mas quando o Is Trigger esta desmarcado ele , tem física, mas ele não ataca, e só empurra o personagem.

Oi, dá uma olhada no tamanho do Capsule Collider e porque pode ser que o valor de 2.5 esteja muito pequeno para o zumbi atingir o jogador tente um valor maior.

Bom dia. Muito obrigado. E eu botei o Capsule Collider do jogador com 1 de raio, e o zumbi com também com 1 de raio. E no código eu aumentei de "2.5" no bloco if para o valor de "3".

if (distancia > 3)
        {
            // quando vc e avistado//
            direcao = Jogador.transform.position - transform.position;
            meuMovimentoInimigo.Movimentar(direcao, statusInimigo.Velocidade);


            animacaoInimigo.Atacar(false);


        }
        else
        {
            //quando ele ja esta perto e ja te ataca//
            direcao = Jogador.transform.position - transform.position;
            direcao.y = 0;
            animacaoInimigo.Atacar(true);
        }

Oi, Caio, tudo bem?

isso solucionou o problema?

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