【问题标题】:Canvas is not rendering on top画布未在顶部呈现
【发布时间】:2016-06-08 13:42:40
【问题描述】:

我使用画布和 Unity UI 元素作为 HUD。我希望 HUD 出现在所有事物的前面,但事实并非如此。

【问题讨论】:

    标签: unity3d google-cardboard virtual-reality


    【解决方案1】:

    以前没有使用过 Cardboard,但我相信您可以通过相机剔除来解决这个问题。只需按照以下步骤操作:

    画布

    1.选择Canvas并将图层更改为UI。默认为 UI,但请确保它仍设置为 UI。

    默认/主摄像头

    1.选择已经存在的主摄像头并将Clear Flags更改为Skybox

    2.将Culling Mask更改为Everything。点击Everything,这是Culling Maskde-select/uncheckUI的设置。

    3.将Depth更改为0

    新相机

    1.新建一个Camera,命名为UI Camera。

    2.选择UI相机,将Clear Flags改为Depth Only

    3.将Culling Mask改为UI

    4.将Depth更改为1

    5.如果要在顶部显示的 Canvas 将“Render Mode”设置为“World Space”或“Screen Space - Camera”,则将 UI 相机拖到 Canvas 的渲染相机/事件相机插槽。如果“Render Mode”设置为“Screen Space - Overlay”,则不必这样做。

    就是这样。这将始终在前面显示 UI。它应该是默认的,但由于某种原因它不适合你。

    【讨论】:

    • 这些步骤破坏了 VR 中的一切,所以我基本上不得不放弃那个分支并重新开始。不过,这是很好的信息和很好的答案;在 VR 中要小心!
    • 我又试了一次,它并没有“破坏一切”,但在 VR 中却很奇怪。当我带着 HMD 环顾四周时,我的画布会四处移动,所以如果我向下看,我的画布会向上移动,如果我向上看,我的画布会向下移动,如果我向左看,我的画布会向右移动,等等。但我实际上无法指向用我的激光笔画在画布上。我的激光笔认为它位于主摄像头的位置。如果我说得有道理,我想知道......希望你能提供帮助!
    【解决方案2】:

    感谢@Programmer 我理解了一般逻辑,但如果你正在研究虚拟现实,你必须做更多的事情。

    1-) 复制虚拟现实相机并应用更改@Programmer

    【讨论】:

    • 实际上你只需要确保新相机是主相机的子相机或者复制它的变换
    • @derHugo 具有讽刺意味的是,让新相机成为 Oculus 主相机的子相机是我问题的原因。
    猜你喜欢
    • 2017-01-04
    • 1970-01-01
    • 2020-07-21
    • 2012-01-01
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    • 2019-08-14
    • 2017-10-12
    相关资源
    最近更新 更多