协同循环在unity3d运行时冻结

时间:2015-05-13 17:01:09

标签: unity3d scripting coroutine

这是我的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);
    }
}

为什么这段代码应该在第一时间工作并在第二次冻结?

1 个答案:

答案 0 :(得分:0)

你需要最终从你的收益中返回控制权,试试这个:

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