是一个while循环,它只产生暂停函数的最佳实践
本文关键字:暂停 函数 最佳 一个 循环 while | 更新日期: 2023-09-27 17:49:15
我有一个函数,它调用第一个对话框,然后需要等待用户按下空格键才能显示第二个对话框。我可以用协程轻松地完成这一点,只需在while循环中生成如下所示:
message.PlayMessage();
while (Input.GetKeyDown (KeyCode.Space) == false) {
yield return null;
}
message.PlayMessage(2);
我的问题是:这是一个奇怪的解决方案吗?我觉得这可能有一个实际的功能,我担心这可能会无缘无故地消耗大量的系统资源。
它将在一个框架中调用一次,不昂贵。并且使Wait功能更方便。
IEnumerator MyMethod() {
message.PlayMessage();
yield return StartCoroutine(WaitForKeyDown(KeyCode.Space));
message.PlayMessage(2);
}
IEnumerator WaitForKeyDown(KeyCode keyCode)
{
while (!Input.GetKeyDown(keyCode))
yield return null;
}
和电话。
StartCoroutine(MyMethod());