Hey I have an enemy that spawns shoots:
public GameObject projectile;
public float delay;
private Rigidbody2D rb2D;
private Rigidbody2D rocketInstance;
private float randomAngle;
// Use this for initialization
void Start ()
{
projectile = GameObject.Find ("Projectile");
//rb2D = projectile.GetComponent<Rigidbody2D>();
StartCoroutine (Shoots());
}
// Update is called once per frame
void Update ()
{
}
IEnumerator Shoots()
{
while (true)
{
yield return new WaitForSeconds(delay);
//GameObject clone = (GameObject) Instantiate(projectile, transform.position, Quaternion.identity);
//clone.rb2D.velocity = -transform.right * speedFactor;
Rigidbody2D projectileInstance = Instantiate(projectile, transform.position, Quaternion.Euler(new Vector3(0,0,Random.Range (-45f, 45f)))) as Rigidbody2D;
}
}
}
an a script attached to the projectiles that should destroy these:
{
public float destroyTime;
// Use this for initialization
void Start ()
{
Destroy (this.gameObject, destroyTime);
}
void OnTriggerEnter2d ()
{
Destroy(this.gameObject);
}
// Update is called once per frame
void Update ()
{
}
}
There is also a script attached to the projectiles to handle the speed:
public int moveSpeed = 100;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
transform.Translate (Vector3.left * Time.deltaTime * moveSpeed);
}
}
This works until the destroyscript starts to destroy the projectiles then I get the error message:
MissingReferenceException: The object of type ‘GameObject’ has been destroyed but you are still trying to access it.
How can I handle this?
Thanks a lot!