您的位置:首页 > 移动开发 > Unity3D

unity, yield return new WaitForSeconds(waitTime) 在 Time.timeScale=0下卡死

2016-01-31 00:12 519 查看
例如下面代码:

IEnumerator f(){

  Time.timeScale = 0;

  float waitTime=2;

  yield return new WaitForSeconds (waitTime);

  Debug.Log(“hi”);

}

则“hi”永远输不出来。

欲在Time.timeScale=0的情况下wait一定时间,可用如下代码:

IEnumerator f(){

  Time.timeScale = 0;

  float waitTime = 2;
  float t = 0; 
  while(true){
    if(t==waitTime)break; 
    t+=Time.unscaledDeltaTime;
    t=Mathf.Min (t,waitTime);
    yield return null;
  }

  Debug.Log(“hi”);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: