C# 是否参考Unity3D中的多个协同程序之一?
有没有一种方法可以让变量点指向Unity3D中C#中的多个协程之一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;
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
“我应该回忆什么?”?