Unity 3D异步轮询Unity中的外部硬件

时间:2017-10-29 00:14:43

标签: c# unity3d

我正在使用Wiimote控制器作为输入设备。 我正在使用this wrapper进行HID调用/轮询。

在此包装器附带的演示场景中,轮询控制器是在Update事件中完成的。

在许多Wii游戏中,极速上下快速触发动作。 包装器表示极端垂直瞄准位置(目标超出范围/“屏幕外”)

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

然而问题是(我认为由于仅在Update事件中轮询的性质),#2)不一定必须发生。目标可能在屏幕上,但控制器没有被轮询。

我想问一下这个问题的有效解决方案。

1 个答案:

答案 0 :(得分:2)

你的民意调查不一定非常糟糕,但除了提高民意调查率之外,你在这里做的事情真的不是什么。

唯一的另一种选择是使用陀螺仪或加速度计(抱歉,没有麻烦检查你的包装机是否暴露了那些)。实际上,您可以将严酷的垂直抖动与屏幕外的点相结合,但如果您的轮询是原始解决方案中的一个问题,那么它仍然可能是一个问题。