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

标签 c# unity3d

我使用 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/

相关文章:

java - 带有 IComparer 和 Array.Sort 的 C# Lambda 表达式(从 Java 转换为 C#)

c# - Unity Physics2D.Raycast 命中自身

android - 我可以在 Unity 中编辑或提取 Assets 包的内容吗?

c# - 使用 RX (Reactive Extensions) 创建 20 个延迟 30 毫秒的事件

c# - unity www.progress 总是返回0

C# 应用程序范围的鼠标左键单击事件

c# - 执行 Web 数据提取

c# - 使用 Entity Framework 执行后期绑定(bind)存储过程

c# - XslCompiledTransform 输出为 XPathDocument

ios - Unity 到 iOS,info.plist 在 PostProcessBuild 后被覆盖