【问题标题】:Coroutine loop freezes on unity3d run time协程循环在 unity3d 运行时冻结
【发布时间】:2015-07-25 02:38:31
【问题描述】:

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

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

【问题讨论】:

    标签: unity3d scripting coroutine


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-10-12
      • 2018-09-06
      • 1970-01-01
      • 2014-03-05
      • 2017-05-20
      • 2016-03-12
      • 2020-11-04
      • 2018-08-10
      • 2022-01-02
      相关资源
      最近更新 更多