我使用 Wiimote Controller 作为输入设备。 我正在使用 this wrapper用于 HID 调用/轮询。
在这个包装器附带的演示场景中,轮询 Controller 是在 Update 中完成的。事件。
在许多 Wii 游戏中,极度上下瞄准会快速触发 Action 。 包装指示极端的垂直瞄准位置(目标超出范围/是“屏幕外”)作为
Y=-1
我试图通过
来检测如此快速的上下运动1) Detecting if aim is off-screen
2) If yes, have a look if the aim is within the screen again
3) Detect if aim is off-screen again and if all this happened in a certain time period
但是问题是(我认为由于仅在更新事件中进行轮询的性质),#2) 不一定会发生。有可能瞄准在屏幕上,但当时并没有轮询 Controller 。
我想问一下这个问题的有效解决方案是什么。
最佳答案
您的投票必须非常糟糕才能成为一个问题,但除了提高投票率之外,您实际上无能为力。
唯一的其他选择是改用陀螺仪或加速度计(抱歉,没有费心去检查你的包装器是否暴露了它们)。您基本上可以将剧烈的垂直抖动与屏幕外的点结合起来,但如果您的轮询在原始解决方案中是一个问题,它仍然可能在这里也是一个问题。
关于c# - Unity 3D异步轮询Unity中的外部硬件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46995723/