Your Coroutine is fine - nice jobe. The problem is that update is sending the event every frame, so your coroutine is starting every frame.
Just change
void Update()
{
StartCoroutine(GenerateEvent());
}
to be
void Start()
{
StartCoroutine(GenerateEvent());
}
So then your event will only get fired once.
↧