unity-game-engine - Unity OpenXR 从 VR Controller 读取触发器和 handle 数据

标签 unity-game-engine virtual-reality openxr

我在使用 Unity OpenXR 中新的基于操作的输入系统时遇到问题。

我想使用 ActionBasedController 的值更新 Animator 对象。一般来说,这可行,但只提供 0 或 1。这样动画看起来很简单。我正在寻找一种读取真实 float 的方法,以便动画仅部分改变。

这是我读取扳机和握力值的代码:

ActionBasedController controller = GetComponent<ActionBasedController>();
handAnimator.SetFloat("Trigger", controller.activateAction.action.ReadValue<float>());
handAnimator.SetFloat("Grip", controller.selectAction.action.ReadValue<float>());

我尝试研究该主题,但我只找到有关旧输入系统的答案。

非常感谢任何帮助或新想法。

如果需要的话,我使用的是 Unity 2020.3.4f1,并且使用的是 OpenXR 插件版本 1.0.3。

最佳答案

在默认操作输入中,您还应该有一个返回轴值的选择操作值。在您的代码中,您正在访问此处的按钮值,该值将为您提供 0 或 1。因此,如果您想要 0 到 1 之间的值,您的代码应该是:

ActionBasedController controller = GetComponent<ActionBasedController>();
handAnimator.SetFloat("Trigger", controller.activateActionValue.action.ReadValue<float>());
handAnimator.SetFloat("Grip", controller.selectActionValue.action.ReadValue<float>());

关于unity-game-engine - Unity OpenXR 从 VR Controller 读取触发器和 handle 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67661219/

相关文章:

android - 场景背景不显示相机捕获

unity-game-engine - 如何使用 Unity 和 Vuforia 创建增强现实 Web 应用程序?

android - 在 Unity 应用程序中获取 Google Glass 手势?

c# - OnGUI 仅在第一个组件中调用

youtube - 在360度和2D视频之间切换?

android - 如何在 Google VR View 中导航?

unreal-engine4 - 构建 Oculus 虚幻引擎时出现编译错误

android-studio - 使用 Android Studio 进行 Oculus 开发的最佳示例应用程序?