Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 等到协同程序完成后再开始另一个协同程序[Unity C]_C#_Unity3d_Coroutine_Ienumerator - Fatal编程技术网

C# 等到协同程序完成后再开始另一个协同程序[Unity C]

C# 等到协同程序完成后再开始另一个协同程序[Unity C],c#,unity3d,coroutine,ienumerator,C#,Unity3d,Coroutine,Ienumerator,我是一个初学者,我对协同程序的了解非常有限。 我让协程1生成两个列表,而协程2将使用这两个列表。执行此操作时: void test () { StartCoroutine (Coroutine1); StartCoroutine (Coroutine2); } 只生成其中一个列表,导致在协同例程2中出错。 但如果我这样做: IEnumerator Coroutine1(){ for (int i = 0; i < numberOfListsToBeGener

我是一个初学者,我对协同程序的了解非常有限。 我让协程1生成两个列表,而协程2将使用这两个列表。执行此操作时:

void test ()
{   
    StartCoroutine (Coroutine1);
    StartCoroutine (Coroutine2);
}
只生成其中一个列表,导致在协同例程2中出错。 但如果我这样做:

IEnumerator Coroutine1(){
    for (int i = 0; i < numberOfListsToBeGenerated; i++) {
        //generate List
        yield return StartCoroutine(Coroutine2());
    }
}
IEnumerator协同程序1(){
for(int i=0;i

团结冻结了。我使用协同程序来解决优化问题,因为生成列表会导致冻结

如果您想等待一个协程完成,可以将
yield return Coroutine1()在正文的第一行
Coroutine2
并将其余代码放在后面,这样
Coroutine2
将等待
Coroutine1
完成,然后继续执行其余代码

void Start() {
    StartCoroutine(Coroutine2());
}

IEnumerator Coroutine2() {
    yield return Coroutine1();

    //Coroutine1 is now finished and you can use its result
}
IEnumerator Coroutine1() {
    //create your lists then call yield return
    yield return null;
}

这些列表是否可以用作类属性?在协同例程1中生成的两个列表是类型为Class1的Object1和Object2的属性。Coroutine2将从Object1.List和Object2.List生成List3,并将其用作类型为Class2的Object3的属性。您是否尝试使用
返回新的WaitForEndofFrame
WaitForEndofFrame没有帮助,没有任何更改会导致Unity崩溃too@IGClusterFck看到我刚才的编辑了吗,我改正了答案中的一个小语法错误。我还测试了它,效果很好。请注意,当协同程序完成时,您不需要
返回null
,它可以被忽略。如果有必要,您仍然希望在其他地方获得
收益率
(例如
收益率返回WWW
)。