I fire an event from a coroutine of class A and subscribe to that event an event handler in class B. After the event handler is invoked, I get an error when trying to access instance variables from it (variable of type MyType is destroyed but you’re trying to access it). Even when I try to access ‘this’ property, I get NullReferenceException. This happens sometimes, in 15% of cases.
Here’s my code:
public class Alien : MonoBehaviour {
public delegate void AlienCorpseAction();
public static event AlienCorpseAction ProduceCorpse;
void MyFunc(){
StartCoroutine ("PooPoo");
}
IEnumerator PooPoo(){
yield return new WaitForSeconds (3);
ProduceCorpse ();
}
}
public class B : MonoBehaviour {
public Alien alien;
void Start () {
alien = ...;
Alien.ProduceCorpse += ProduceCorpse;
}
void FixedUpdate () {
Debug.Log(alien + " " + this); // I get normal values here
}
void ProduceCorpse(){
Debug.Log(alien + " " + this); // I got "null null" here sometimes
}
}
After I get ‘null null’ in event handler, console still shows me normal values in FixedUpdate.