延迟prgram以保持屏幕上的文本

时间:2017-12-11 14:42:57

标签: c# unity3d delay

我正在进行一次文本冒险,并希望在继续使用该程序之前显示一些文本几秒钟。我找到了等待等等的东西,但似乎无法在我的代码中实现它们。

这是我的代码:

void state_pad_1 (){
    text.text = "You put the " + weight + "kg on pad 1.\n\n ";
    if (weight ==weight1){      
        myState = States.room_2;}
    else {
    myState = States.room_1;    
    }   
}

因此延迟应该在text和if语句之间。

1 个答案:

答案 0 :(得分:0)

使用Coroutines可轻松完成所需操作 例如,您应该将您的方法转换为以下内容:

IEnumerator state_pad_1 ()
{
  text.text = "You put the " + weight + "kg on pad 1.\n\n ";
  //enter number of seconds you want instead of 5
  yield return new WaitForSeconds(5); 
  if (weight ==weight1){      
      myState = States.room_2;}
  else {
  myState = States.room_1;    
  }   
}

但请记住,以不同的方式调用协同程序,例如:

StartCoroutine("WaitAndPrint");

如果您尝试使用System.Threading.Thread.Sleep(1000),它会有点freeze your app,因此协同程序是更好的解决方案。