Editor Coroutines
Introduction
Why?
Approach
Solution
private static List<IEnumerator> coroutines;
private static void StartCoroutine(IEnumerator handle)
{
if (coroutines == null)
{
EditorApplication.update -= EditorUpdate;
EditorApplication.update += EditorUpdate;
coroutines = new List<IEnumerator>();
}
coroutines.Add(handle);
}
private static void EditorUpdate()
{
List<IEnumerator> done = new List<IEnumerator>();
if (coroutines != null)
{
foreach (var e in coroutines)
{
if (!e.MoveNext())
done.Add(e);
else
{
if (e.Current != null)
Debug.Log(e.Current.ToString());
}
}
}
foreach (var d in done)
coroutines.Remove(d);
}Line 1
Line 3
Line 15
How to Use
Last updated