Unity2D将多个画布分层

时间:2018-11-26 12:17:38

标签: unity3d canvas

我为我的项目设置了两个画布,一个用作背景,另一个用于保存前景UI元素。最初它们被设置为世界空间,但是我没有任何问题,但是现在我正在优化游戏,我必须更改空间以适应手机。如何设计画布以使一个在背景中起作用而另一个在前景中起作用?我曾尝试更改在线找到的z-pos和其他快速修复程序,但没有一个起作用。

1 个答案:

答案 0 :(得分:1)

好,您有背景画布,子画面和前景画布,并且背景画布应位于所有东西(包括子画面)的后面。

想法是首先使用一台摄像机仅渲染背景,然后使用另一台摄像机渲染所有东西。

为此,我们应该:

  • 为背景画布添加一个图层。将背景画布层和子级更改为该层。

要添加层,请选择任何gameObject,然后在检查器的顶部看到:

enter image description here

单击标记为“层”的下拉列表,然后选择“添加层”。然后创建新图层并为其命名:

enter image description here

选择背景画布,并为其及其子级更改图层。 添加游戏对象时,请记住,如果将它们添加到背景画布中,则它们的层必须与画布层相同,否则它们将被错误的相机渲染

  • 在主相机的剔除蒙版中禁用该图层。

现在,相机不应再呈现背景用户界面,它将在游戏视图中消失。

  • 添加用于渲染背景用户界面的摄像头。

深度较高的摄像机会在深度较小的摄像机的顶部渲染,因此我们应将其深度设置为小于主摄像机的深度。我们还应该将其剔除蒙版设置为仅用于背景UI的图层,否则场景中的所有对象将被渲染两次。 从主摄像机复制其他设置将主摄像机的清除模式设置为“不清除或仅深度” ,以防止其擦除背景。

  • 将背景画布的模式设置为“屏幕空间-相机”,然后将新创建的相机拖到此处的“渲染相机”字段中。

现在应该可以工作。