【问题标题】:Unity UI canvas not working with VRUnity UI 画布不适用于 VR
【发布时间】: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

标签: unity3d virtual-reality


【解决方案1】:

在 Unity 中,光线投射仅适用于具有碰撞器的游戏对象。 Raycast 在碰到对撞机时返回 true。没有对撞机,光线就无法击中任何东西。

Unity Physics.Raycast documentation

【讨论】:

  • 谢谢,我所要做的就是添加 Gvr Pointer Graphic Raycaster 脚本,让它在 Daydream 中工作!
【解决方案2】:

我相信,对于第一次看到这个的人来说,它不起作用的一个潜在原因是上图中的画布使用的是“Graphics Raycaster”元素而不是“OVR Raycaster”元素。 OVR Raycaster 旨在取代图形 raycaster 以将 Oculus 连接到 Unity UI。

【讨论】:

  • 是否有检测在某处使用 OVRRaycaster 的 UI 按钮单击的示例?
【解决方案3】:

如果你想在 VR 中使用 unity 的 UI,你可能想看看这个资产:VRTK

有一些使用控制器或相机定位的 VR UI 示例。

【讨论】:

    【解决方案4】:

    转到你的画布,你应该有一个“平面距离”选项,它设置为 100 ,我将其更改为 0.5 并且效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-20
      • 1970-01-01
      • 2022-10-18
      • 2016-08-27
      • 1970-01-01
      相关资源
      最近更新 更多