So I want the NewShield() method to be called right after the LargeShieldClone object is destroyed.
What usually ends up happening is that NewShield() is called at the same time as WaitAndDestroy().
I’ve tried everything I can think of. Any ideas? Thanks.
using UnityEngine;
using System.Collections;
public class LargeShieldInstantiate : MonoBehaviour {
public GameObject Shield;
GameObject ShieldClone;
public GameObject LargeShield;
GameObject LargeShieldClone;
int secondsBeforeDestruction = 10;
void OnCollisionEnter2D(Collision2D collider){
if(collider.gameObject.tag == "LSPowerup"){
Destroy (this.gameObject);
LargeShieldClone = Instantiate (LargeShield) as GameObject;
LargeShieldClone.transform.parent = GameObject.Find ("ShieldRotator").transform;
WaitAndDestroy ();
}
}
IEnumerator WaitAndDestroy(){
Destroy (LargeShieldClone, secondsBeforeDestruction);
yield return new WaitForSeconds (10);
NewShield ();
}
void NewShield(){
ShieldClone = Instantiate (Shield) as GameObject;
ShieldClone.transform.parent = GameObject.Find ("ShieldRotator").transform;
}
}