Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d Unity2D分层多画布'_Unity3d_Canvas - Fatal编程技术网

Unity3d Unity2D分层多画布'

Unity3d Unity2D分层多画布',unity3d,canvas,Unity3d,Canvas,我为我的项目设置了两个画布,一个用作背景,另一个用于保存前景UI元素。最初他们设置为世界空间,我没有问题,但现在我正在优化我的游戏,我必须改变空间,以便他们适应手机。我如何设计画布,使一个在背景中活动,另一个在前景中活动?我尝试过更改z-pos和其他在线快速修复,但没有成功。好的,你有背景画布、精灵和前景画布,背景画布应该在所有东西后面,包括精灵 其思想是首先使用一个摄影机只渲染背景,然后使用另一个摄影机渲染所有内容 为此,我们应: 为背景画布添加一层。将背景画布层和子对象更改为该层。 要添加图

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

好的,你有背景画布、精灵和前景画布,背景画布应该在所有东西后面,包括精灵

其思想是首先使用一个摄影机只渲染背景,然后使用另一个摄影机渲染所有内容

为此,我们应:

为背景画布添加一层。将背景画布层和子对象更改为该层。 要添加图层,请选择任意游戏对象,然后在“检查器”顶部,您将看到:

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

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

禁用主摄影机消隐遮罩中的该层。 现在相机不再渲染背景UI,它将在游戏视图中消失

添加用于渲染背景UI的摄影机。 深度较高的摄影机在深度较低的摄影机之上渲染,所以我们应该将其深度设置为小于主摄影机的深度。我们还应该将其消隐遮罩设置为仅用于背景UI的层,否则场景中的所有对象将渲染两次。从主摄像机复制其他设置。将主摄像头的清除模式设置为“不清除”或“仅深度”,以防止其擦除背景

将背景画布的模式设置为“屏幕空间-摄影机”,并将新创建的摄影机拖动到“场渲染摄影机”中。
现在应该可以工作了。

如果将画布渲染模式设置为“屏幕空间-覆盖”,则会有一个名为“排序顺序”的数字。越大的值将元素带到前面,越小的值将元素发送到后面。尝试了这个,似乎对我不起作用,除非排序顺序不能小于1?但没有给出错误。我检查了它,所有值都按预期工作,甚至低于零。它是如何工作的,给出了错误的元素顺序?你能添加画布的截图和你对它们的期望吗?我忘了说,覆盖画布总是覆盖整个世界和精灵,如果背景在画布上,它会覆盖它们,也许这是你的问题。我的问题是我需要精灵和其他游戏对象后面的画布。如果你的背景是一张图片,你可以使用精灵