我希望在最后几帧中轮询Unity输入,并使用这些数据来解释用户的按钮按下。然而,根据我的测试,感觉以应用程序的60 FPS帧速率进行轮询会导致一些非常快的输入丢失。
简单的例子,用户尝试从下转到前进:
frame 1 - user is holding Down
frame 1.5 - user taps Forward, but hasn't released Down yet
frame 2 - user lets go of Down and has reached Forward fully
在我目前的设置中,使用unity的帧速率更新,完全错过了用户同时按住向下和向前的第1.5帧。有没有一种方法可以运行一个单独的更新,它的运行速度比常规的Unity MonoBehavior更新功能更快?或者需要一个不同的解决方案,比如通过事件进行查询(iirc是一个选项,但我可能记错了(?
我认为在传统输入系统中不可能将轮询频率与帧速率解耦,但在新输入系统中,有一个pollingFrequency属性允许您以赫兹为单位定义频率。它使用后台线程来轮询数据。您还需要订阅一个输入操作更改,并在那里记录您的值,以便最终在更新方法中使用它们。