Mask和子节点处于不同Layer时,相机无法显示子节点内容

Mask和子节点处于不同Layer时,相机无法显示Visibility里指定的层级内容

场景中有两个相机:

MainCamera,Visibility 中指定了 UI_2D 和 TEST_LAYER。

TestLayerCamera,Visibility 中指定了 TEST_LAYER。(为其指定了RenderTexture,显示在右下角)

场景中的可视内容如下:

image-20250606170353772

这些节点均通过 Graphics 进行绘制。子节点绘制的都是五边形,Mask绘制的都是圆形。Mask均是反向遮罩。

只不过 TestLayer_Mask 所处层级为 TEST_LAYER,2D_Mask 所处的层级为 UI_2D。

绘制步骤:

当 Mask 和其子节点处于同一Layer的情况:

TestLayer_Graphics1 绘制五边形 -> TestLayer_Mask 绘制圆形 -> 两者都清空图形。

表现效果:



当 Mask 和其子节点处于不同Layer的情况:

TestLayer_Graphics2 绘制五边形 -> 2D_Mask 绘制圆形 -> 两者都清空图形。

表现效果:

:arrow_down:这就是异常现象。当遮罩是2D_UI层,子节点是TEST_LAYER层时。仅渲染TEST_LAYER的相机无法成像。


DiffLayerMaskCameraRender 2.zip (30.0 KB)
工程如下

有没有大佬给解释下。这个操作我在隔壁unity中试了没问题

我把mask和其子节点图片放到一个layer后,就没问题了,只是奇怪为什么mask镂空的区域,在rendertexture中没有镂空。不过效果满足了,此贴终结