我有一个调用第一个对话框的功能,然后需要等待用户按空格键才能显示第二个对话框。我可以使用协程轻松完成此任务,通过在一个while循环中产生如下:
message.PlayMessage();
while (Input.GetKeyDown (KeyCode.Space) == false) {
yield return null;
}
message.PlayMessage(2);
我的问题是:这是一个奇怪的解决方案吗?我觉得可能有一个实际的功能,我担心这可能无缘无故地占用了大量的系统资源。
答案 0 :(得分:5)
它会在一帧中被调用一次,而不是昂贵的。 并且使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());