使用Unity的都知道Unity提供了协程的方式,使用协程能够使异步回调更加简洁方便。但是Unity的协程只有继承MonoBehaviour才能开启,也就是说,如果你想用,则必须存在一个全局类,其挂在GameObject上,并且为了让所有地方都能使用,这个GameObject不可以消除。
这个限制虽然不会带来太大麻烦,但只要了解Unity协程的实现原理,完全可以仿照Unity实现一套自己的协程管理类。
废话少说,直接上代码。
using System.Collections;
using System.Collections.Generic;
namespace Com.Coroutine
{
public class Coroutine
{
internal IEnumerator m_Routine;
internal IEnumerator Routine
{
get { return m_Routine; }
}
internal Coroutine()
{
}
internal Coroutine(IEnumerator routine)
{
this.m_Routine