using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace ZXL { public class ZCoroutine : MonoBehaviour { private static ZCoroutine instance; private Queue pool = new Queue(); public static ZCoroutine Instance => instance; private void Awake() { if (instance != null) { Destroy(this.gameObject); } instance = this; } private void Update() { if (pool.Count > 0) { var enumerator = pool.Dequeue(); StartCoroutine(enumerator); } } public void AddIEnumerator(IEnumerator enumerator) { pool.Enqueue(enumerator); } } }