协程循环在 unity3d 运行 时间冻结

Coroutine loop freezes on unity3d run time

这是我的 unityScript 代码,它有一个简单的协程循环。此代码在编辑器测试中运行良好,但在移动设备 phone 和实时测试中,如果您想转到主菜单并再次返回进行倒计时,计数器会冻结。 换句话说,你从 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);
    }
}

为什么这段代码应该第一次运行而第二次冻结?

你需要return最终控制你的产量,试试这个:

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