1

我正在构建一个目标环境必须包含混合现实的 Unity 应用程序。我已经能够在资产商店中找到非常好的文件选择器资产,但这些资产似乎都不适用于混合现实耳机,尽管它们即使在 VR 模式下也会出现在屏幕上。

是否有任何我应该使用的默认 MR 资产或者我应该寻找什么?还是我必须从头开始构建所有这些?

谢谢

4

2 回答 2

1

VR 的不同之处在于没有光标,所以普通的 EventSystem 不能开箱即用。对我有用的最简单的解决方法是:向 UI 元素添加一个盒子碰撞器组件。来自控制器的 Raycast 对箱碰撞器。如果碰撞器有一个实现 IPointerClickHandler 接口的组件,您可以针对它触发 OnPointerClick(PointerEventData e) 方法,它将被视为有效点击(尽管绕过事件系统导航)。

你需要传递一个 PointerEventData 对象,我不记得你是否可以只传递一个空值,但我很确定传递一个新的 PointerEventData(EventSystems.current) 就可以了。

对于拖动和更复杂的事件,您可能需要填写一些额外的字段以使 UI 正常运行

于 2018-10-18T12:55:14.330 回答
0

我最终使用从资产商店和混合现实工具包购买的“文件管理器”资产编写了自己的文件选择器。我是否值得将它放在资产商店中,或者现在我们有更好的 mrtk 可用,这是否会被事件所取代?

于 2019-04-14T01:34:02.520 回答