协同程序循环在unity3d运行时冻结

协同程序循环在unity3d运行时冻结,unity3d,scripting,coroutine,Unity3d,Scripting,Coroutine,这是我的unityScript代码,它有一个简单的协程循环。这段代码在编辑器测试中效果很好,但在手机和实时测试中,如果你想进入主菜单并再次返回进行倒计时,计数器将冻结。 换言之,你们从1级=>2级开始,在2=>1级之后,一切都运行得很好,当你们再次进入2级时,倒计时将冻结在第一个数字 function Start () { StartCoroutine("DoSomething"); } - 为什么这段代码第一次工作,第二次冻结?您需要最终从收益中返回控制,请尝试以下操作: func

这是我的unityScript代码,它有一个简单的协程循环。这段代码在编辑器测试中效果很好,但在手机和实时测试中,如果你想进入主菜单并再次返回进行倒计时,计数器将冻结。 换言之,你们从1级=>2级开始,在2=>1级之后,一切都运行得很好,当你们再次进入2级时,倒计时将冻结在第一个数字

function Start () { 
    StartCoroutine("DoSomething");
}
-


为什么这段代码第一次工作,第二次冻结?

您需要最终从收益中返回控制,请尝试以下操作:

function DoSomething () {
    for (var i = 5; i >= 0; --i) {  
        print("Future : \n" + i);
        yield WaitForSeconds(1);
        print("counting : \n " + i);
    }
    yield return null;
}
function DoSomething () {
    for (var i = 5; i >= 0; --i) {  
        print("Future : \n" + i);
        yield WaitForSeconds(1);
        print("counting : \n " + i);
    }
    yield return null;
}