40 lines
842 B
C#
40 lines
842 B
C#
|
using System;
|
||
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace ZXL
|
||
|
{
|
||
|
public class ZCoroutine : MonoBehaviour
|
||
|
{
|
||
|
private static ZCoroutine instance;
|
||
|
|
||
|
private Queue<IEnumerator> pool = new Queue<IEnumerator>();
|
||
|
|
||
|
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);
|
||
|
}
|
||
|
}
|
||
|
}
|