using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Gerador : MonoBehaviour
{
[SerializeField]
private Transform alvo;
[SerializeField]
private GameObject prefabInimigo;
[SerializeField]
private float tempo;
[SerializeField]
private float raio;
private void Start()
{
StartCoroutine(this.IniciarGeracao());
}
private IEnumerator IniciarGeracao()
{
while (true)
{
yield return new WaitForSeconds(this.tempo);
this.Instanciar();
}
}
private void Instanciar()
{
var inimigo = GameObject.Instantiate(this.prefabInimigo);
this.DefinirPosicaoInimigo(inimigo);
inimigo.GetComponent<Seguir>().SetAlvo(this.alvo);
}
private void DefinirPosicaoInimigo(GameObject inimigo)
{
var posicaoAleatoria = Random.insideUnitCircle * this.raio;
var posicaoInimigo = (Vector2)this.transform.position + posicaoAleatoria;
inimigo.transform.position = posicaoInimigo;
}
}
A unity acusa um erro NullReference na seguinte linha inimigo.GetComponent().SetAlvo(this.alvo); Dizendo assim: NullReferenceException: Object reference not set to an instance of an object Gerador.Instanciar () (at Assets/Scritpt/Gameplay/Gerador.cs:33) Gerador+c__Iterator0.MoveNext () (at Assets/Scritpt/Gameplay/Gerador.cs:25) UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)