C# 是否参考Unity3D中的多个协同程序之一?

C# 是否参考Unity3D中的多个协同程序之一?,c#,unity3d,coroutine,ienumerator,C#,Unity3d,Coroutine,Ienumerator,有没有一种方法可以让变量点指向Unity3D中C#中的多个协程之一 public class Example : MonoBehaviour { ? something ? crt; private IEnumerator CoroutineA() { } private IEnumerator CoroutineB() { } void Start() { crt = CoroutineA;

有没有一种方法可以让变量点指向Unity3D中C#中的多个协程之一

public class Example : MonoBehaviour
{
    ? something ?  crt;

    private IEnumerator CoroutineA()
    {
    }

    private IEnumerator CoroutineB()
    {
    }

    void Start()
    {
        crt = CoroutineA;
        StartCoroutine(crt);
    }
}

您正在寻找的类型是。委托类似于函数指针,并不特定于Unity3D

public class Example : MonoBehaviour
{
    private delegate IEnumerator CoroutineDelegate();

    private IEnumerator CoroutineA()
    {
    }

    private IEnumerator CoroutineB()
    {
    }

    public void Start()
    {
        CoroutineDelegate crt = CoroutineA;
        StartCoroutine(crt());
    }
}

您正在寻找的类型是。委托类似于函数指针,并不特定于Unity3D

public class Example : MonoBehaviour
{
    private delegate IEnumerator CoroutineDelegate();

    private IEnumerator CoroutineA()
    {
    }

    private IEnumerator CoroutineB()
    {
    }

    public void Start()
    {
        CoroutineDelegate crt = CoroutineA;
        StartCoroutine(crt());
    }
}

简单地说,使用
start例程
函数只需要一个
IEnumerator
对象来启动相应的协同例程

这意味着您可以创建类型为
IEnumerator
的变量,并将协同程序的返回值分配给它们(回想一下,协同程序实际上是一个生成器,即返回
IEnumerator

然后,只需调用变量上的
startcroutine
。 在您的示例中,字段
crt
应具有类型
IEnumerator
。在您的
Start
方法中,您应该如下分配:

crt = CoroutineA();
StartCoroutine (crt);
然后,如果要启动其分配的协同程序,请按如下方式执行:

crt = CoroutineA();
StartCoroutine (crt);

简单地说,使用
start例程
函数只需要一个
IEnumerator
对象来启动相应的协同例程

这意味着您可以创建类型为
IEnumerator
的变量,并将协同程序的返回值分配给它们(回想一下,协同程序实际上是一个生成器,即返回
IEnumerator

然后,只需调用变量上的
startcroutine
。 在您的示例中,字段
crt
应具有类型
IEnumerator
。在您的
Start
方法中,您应该如下分配:

crt = CoroutineA();
StartCoroutine (crt);
然后,如果要启动其分配的协同程序,请按如下方式执行:

crt = CoroutineA();
StartCoroutine (crt);

“回想一下Unity在
Func
Action
“我应该回忆什么?”回想一下Unity在
Func
Action
“我应该回忆什么?”?