4
respostas

Assets\scripts\GeradorZumbis.cs(12,19): warning CS0414: The field 'GeradorZumbis.DistanciaDoJogador' is assigned but its value is never used

esta aparecendo isso, e os zumbis estao sendo gerados sozinhos

4 respostas
public class GeradorZumbis : MonoBehaviour
{
    public GameObject Zumbi;
    float ContadorTempo = 0;
    public float TempoGerarZuumbi = 1;
    public LayerMask LayerZumbi;
    private float disntaciadegeracao = 3;
    private float DistanciaDoJogador = 10;
    private GameObject jogador;
    private int quantidademaximadezumbisvivos = 2;
    private int quantidadedezumbisvivos; 

    private void Start()
    {
        jogador = GameObject.FindWithTag("jogador");
        for ( int i = 0; i < quantidademaximadezumbisvivos; i++ ) 
        {
            StartCoroutine(GerarNovoZumbi());
        }
    }
    
    void Update()
    {
        bool possoGerarZumbisPelaDistacia = Vector3.Distance(transform.position, jogador.transform.position) > disntaciadegeracao;



        if (possoGerarZumbisPelaDistacia == true && 
            quantidadedezumbisvivos < quantidademaximadezumbisvivos) 
        {
            ContadorTempo += Time.deltaTime;

            if (ContadorTempo >= TempoGerarZuumbi)
            {
                StartCoroutine(GerarNovoZumbi());
                ContadorTempo = 0;
            }
        }
        
        ContadorTempo += Time.deltaTime;

        if (ContadorTempo >= TempoGerarZuumbi)
        {
           StartCoroutine(GerarNovoZumbi());
            ContadorTempo = 0;
        }
        
    }
   
    void OnDrawGizmos()
    {
        Gizmos.color = Color.yellow;
        Gizmos.DrawWireSphere(transform.position, disntaciadegeracao);
    }
    
    
    
    IEnumerator GerarNovoZumbi () 
    {

        Vector3 posicaoDeCriacao = AleatorizarPosicao();
        Collider[] colisores = Physics.OverlapSphere(posicaoDeCriacao, 1, LayerZumbi);
        
        while (colisores.Length > 0 ) 
        {
           posicaoDeCriacao = AleatorizarPosicao();
           colisores = Physics.OverlapSphere(posicaoDeCriacao, 1, LayerZumbi);
            yield return null;
        }
       ControlaZumbi zumbi  =  Instantiate(Zumbi, posicaoDeCriacao, transform.rotation).GetComponent<ControlaZumbi>();
        zumbi.meuGerador = this;
        quantidadedezumbisvivos++;


        
    }
    
    

        Vector3 AleatorizarPosicao()
        {
            Vector3 posicao = Random.insideUnitSphere * disntaciadegeracao;
            posicao += transform.position;
            posicao.y = 0;

            return posicao;
        }
       
       public void DiminuirQuantidadeDeZumbisVivos () 
    
       {
        quantidadedezumbisvivos--;
    
       }

    
}

Oi, miguel, isso não é um erro, é só um aviso que conforme ele diz a variável DistanciaDoJogador está definida no script mas nunca foi usada então tecnicamente ela seria desnecessaria. A Unity tá te ajudando a rever isso ou melhorar seu código apagando algo que você não precisa.

mas nao era pra isso ta sendo usado ?

Deveria sim, mas aparentemente você usou a variável disntaciadegeracao pra isso no possoGerarZumbisPelaDistacia, o que não tem 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