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

Após incluir o script de GeradorZumbi, os zumbis não atacam mais da forma correta

Ao incluir o script GeradorZumbi, eles não atacam mais o personagem quando estão em grupo somente atacam se chegar perto somente um. E ao encostar no zumbi, o personagem e os outros inimigos empurram eles pra fora do cenário.

8 respostas

Olá, tudo bem?

O prefab dos zumbis está aplicado? Como está o código?

ControlaInimigo.cs

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

public class ControlaInimigo : MonoBehaviour
{
    public GameObject Jogador;
    public float Velocidade = 3;

    // Use this for inicialization
    // Use this for initialization
    void Start()
    {
        Jogador = GameObject.FindWithTag("Jogador");
    }

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

    }

    void FixedUpdate()
    {

        {   



            //pega distancia entre dois pontos e retorna um float
            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);
            //para quando chegar perto do jogador
            if (distancia > 2.8)
            {
                //move em direção ao jogador

                GetComponent<Rigidbody>().MovePosition
                    (GetComponent<Rigidbody>().position +
                    direcao.normalized * Velocidade * Time.deltaTime);
                //faz o inimigo olhar pro personagem


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

    //evendo da animção de ataque 
    void AtacaJogador ()
    {
        //pausa o jogo
        Time.timeScale = 0;
        //criar interface de gameover
        Jogador.GetComponent<ControlaJogador>().TextGameOver.SetActive(true);
        Jogador.GetComponent<ControlaJogador>().Vivo = false;
    }

}

GeradorZumbi.cs

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

public class GeradorZumbis : MonoBehaviour
{

    public GameObject Zumbi;
    float contadorTempo = 0;
    public float TempoGerarZumbi = 1;

    // Use this for initialization
    void Start()
    {

    }

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

        contadorTempo += Time.deltaTime;

        if (contadorTempo >= TempoGerarZumbi)
        {
            Instantiate(Zumbi, transform.position, transform.rotation);
            contadorTempo = 0;
        }

    }

}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

![](Insira aqui a descrição dessa imagem para ajudar na acessibilidade )

Ao encostar nos zumbis o jogador joga eles pra fora do cenário, assim como os outros inimigos.

Hmm não entendi muito bem o problema ainda, seria legal ver o projeto.

Você consegue fazer um .zip da pasta do projeto e subir num Google Drive, Dropbox, ou algo assim e deixar o compartilhamento publico para que eu possa acessá-la?

Segue o link no Google Drive:

https://drive.google.com/file/d/1ga1abNXwR_HG7Hhv1xqZaIlNonss8z-x/view?usp=sharing

solução!

Oi, Michael, tudo bem?

É porque os zumbis são criados na posição gerador e ele está voando, zera o Y dele pra eles serem criados no chão, isso deve resolver.

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