画布未在顶部呈现
Posted
技术标签:
【中文标题】画布未在顶部呈现【英文标题】:Canvas is not rendering on top 【发布时间】:2016-06-08 13:42:40 【问题描述】:我使用画布和 Unity UI 元素作为 HUD。我希望 HUD 出现在所有事物的前面,但事实并非如此。
【问题讨论】:
【参考方案1】:以前没有使用过 Cardboard,但我相信您可以通过相机剔除来解决这个问题。只需按照以下步骤操作:
画布:
1.选择Canvas
并将图层更改为UI。默认为 UI,但请确保它仍设置为 UI。
默认/主摄像头:
1.选择已经存在的主摄像头并将Clear Flags
更改为Skybox
。
2.将Culling Mask
更改为Everything
。点击Everything
,这是Culling Mask
和de-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 主相机的子相机是我问题的原因。以上是关于画布未在顶部呈现的主要内容,如果未能解决你的问题,请参考以下文章
单击链接时缓慢加载 Facebook 画布应用程序(如果目标顶部)
Android 模拟器未在 webview 中显示 html5 画布