在Unity中,有些类不继承自MonoBehaviour,若想要在这些类中使用StartCoroutine,则可以在类中新建一个继承MonoBehaviour的空类,再把这个空类当成组件挂到一个空对象上,然后就可以开启协程了
public class MonoStub : MonoBehaviour
{
}
new GameObject().AddComponent().StartCoroutine("Test1"); 示例:
// 创建一个继承 MonoBehaviour 的空类
private class MonoStub:MonoBehaviour
{
}
// 把计时器协程挂载到这个空类的组件上
public void TimeCounter()
{
GameObject MonoStubTemp = GameObject.Find("MonoStubTemp");
if (MonoStubTemp == null)
{
MonoStubTemp = new GameObject();
MonoStubTemp.name = "MonoStubTemp";
MonoStubTemp.AddComponent();
}
MonoStubTemp.GetComponent().StartCoroutine(TimerProcess());
Debug.Log("开始计时器协程");
}