【发布时间】:2019-06-20 10:04:33
【问题描述】:
我正在使用 Windows Mixed Reality 耳机 (Lenovo Explorer) 和 Unity 开发一个小型游戏项目。我目前正在运行最新的 MRTK v2.1 版本。
我正在使用自定义右手控制器。这是一个预制件,其中主要对象具有以下组件:
- mrtk 的
WindowsMixedRealityControllerVisualizer脚本 - 一个输入控制器脚本(使用
IMixedRealityInputHandler)来管理动作(射击、跳跃等)的输入 - 处理 VR 世界中实际动作的自定义脚本。
除了组件之外,它还有一个子对象,它是我要渲染的对象的 3D 模型预制件。它在一个孩子身上,所以我可以用一些偏移量正确放置它。 AFAIK 这不是问题。这整件事是它自己的预制件,然后我将其添加到我的自定义MixedRealityControllerVisualizationProfileunder 全局右手控制器模型。一般来说,这就像我想要的那样工作。控制器在我的右手上正确渲染,输入的行为也像我想要的那样。
我的问题是,在游戏中,当我点击Home按钮(windows logo)显示浮动菜单时,再次点击返回游戏时,new 控制器在 0,0,0(或者我的手在返回游戏时的位置)生成;不过,我手上还有一个,而这个新的 也 以与我手上的相同的方式响应输入。如果我再次打开/关闭主页按钮,这会重复,我最终会产生几个控制器。因此,当我射击时,我的手和 0,0,0 处的新控制器(或者那时我已经在场景中使用的尽可能多的控制器)都开了一枪
我不认为我的控制器会丢失跟踪,所以 IDK 为什么 mrtk 会产生一个新控制器。我考虑过在场景中检查额外的控制器对象,并在每次更新时手动删除它们,但这听起来很傻,一定有一些配置可以肯定地解决这个问题,不是吗?可视化脚本不处理这个吗?
我在网上四处查看,但没有找到任何关于此的具体内容。任何线索都将受到欢迎。
【问题讨论】:
标签: c# unity3d mrtk windows-mixed-reality