esta aparecendo isso, e os zumbis estao sendo gerados sozinhos
esta aparecendo isso, e os zumbis estao sendo gerados sozinhos
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.