public static bool AllDone(Monitor[] monitors) { foreach (var m in monitors) if (m.Progress != Monitor.State.Done) return false; return true; }
public static IEnumerator Build(MonoBehaviour target, params IEnumerator[] coroutines) { var monitors = new Monitor[coroutines.Length]; for (var i = 0; i < coroutines.Length; i++) target.StartCoroutine(monitors[i] = new Monitor(coroutines[i])); while (!AllDone(monitors)) yield return null; }