【发布时间】:2017-03-16 20:06:24
【问题描述】:
我一直在尝试制作一个非常简单的原生 Unity UI 画布与 VR 配合使用的演示。
我在这里阅读了 oculus 博客文章:https://developer3.oculus.com/blog/unitys-ui-system-in-vr/,但我需要使用本机统一 UI,因为我想重新分发代码而无需担心许可证。我遵循本教程 https://unity3d.com/learn/tutorials/topics/virtual-reality/interaction-vr?playlist=22946 并从资产商店。在这方面,他们提供了一些放置在相机上的脚本(VRInput 和 VREyeRaycaster)和一些放置在目标对象上的脚本(VRInteractiveItem 和 ExampleInteractiveItem)。
当我将目标脚本应用于场景中的常规游戏对象(例如立方体)时,光线投射工作正常,并且在激活 fire1 时会进行适当的调用。当我尝试对画布对象(例如按钮)执行此操作时 - 未检测到命中。我尝试将两个目标脚本(VRInteractiveItem 和 ExampleInteractiveItem)放在画布上,包含按钮的图像和按钮本身,但没有任何效果。我究竟做错了什么?为什么它可以在常规游戏对象上工作而不是在 UI 画布上工作?我已确保我的所有画布元素都勾选了它们的 raycast 目标布尔属性
编辑: 当我将一个盒子对撞机附加到 UI 元素时,它似乎可以工作,这是必需的吗?我认为它应该只与附加的 GraphicsRaycaster 一起使用。但是下面的配置不起作用(当禁用盒子碰撞器并启用图形光线投射器时)
这是我的玩家相机上的内容:
如果我必须使用盒子碰撞器,我没有问题,但我想利用 UI 按钮在突出显示和按下颜色属性中的变化
【问题讨论】:
-
确保使用正确的 RayCaster “Unity 的 UI 系统中有两种内置的光线投射器:GraphicRaycaster(用于画布)和 PhysicsRaycaster(用于物理对象)。”您用于立方体的光线投射可能是 PhysicsRaycaster