我目前正在统一控制台中创建一个“游戏”。在这个游戏中,我让控制台显示我想对玩家说的话,但是由于控制台并不是用于类似这样的事情的,因此它变得越来越拥挤。在我告诉玩家我正确答案的功能中,我还在重新启动游戏。但是,这会导致所有对话都立即加载,而这并没有给玩家提供看到我对先前游戏的回应的机会。
else if (Input.GetKeyDown(KeyCode.Return))
{
Debug.Log("I'm a genius :)");
StartGame();
}
我希望要么让游戏延迟StartGame()? Debug.Log函数执行后,该函数(包含新游戏开始的所有对话)。或者,如果可能,请玩家按下按钮以执行新游戏。
答案 0 :(得分:3)
我不太熟悉统一脚本。但基于这个answer形式的统一论坛
您可以在任何MonoBehaviour中使用协程进行操作:
IEnumerator ExecuteAfterTime(float time)
{
yield return new WaitForSeconds(time);
// Code to execute after the delay
}
您可以使用例如StartCoroutine(ExecuteAfterTime(10));调用它
请注意,它将执行异步操作,因此将需要等待它完成的所有操作都放在协程中。
答案 1 :(得分:-1)
也许您可以使用InvokeRepeating