光源层
光源层 (Light Layers) 功能允许配置某些光源仅影响特定的游戏对象。
例如,在下图中,光源 A
影响球体 D
,但不影响球体 C
。光源 B
影响球体 C
,但不影响球体 D
。
要阅读如何实现此示例,请参阅如何使用光源层一节。
如何启用光源层
要在项目中启用光源层 (Light Layers),请执行以下操作:
在 URP 资源的 Lighting 部分中,单击垂直省略号图标 (⋮),然后选择 Show Additional Properties。
在 URP 资源的 Lighting 部分中,选中 Light Layers。
URP 资源 > Lighting > Light Layers
启用 Light Layers 时,Unity 会显示每个光源的以下额外属性:
General > Light Layer
Shadows > Custom Shadow Layers
启用 Light Layers 会禁用光源的 Culling Mask 属性 (Rendering > Culling Mask)。
启用 Light Layers 时,Unity 会禁用 Culling Mask。
如何编辑光源层名称
要编辑光源层的名称,请执行以下操作:
选择 Project Settings > Graphics > URP Global Settings。
在 Light Layer Names (3D) 部分中编辑光源层名称。
Graphics > URP Global Settings > Light Layer Names (3D)
如何使用光源层
本节将介绍如何配置以下应用示例:
场景包含两个点光源(图中标记为
A
和B
)和两个球体游戏对象(图中的C
和D
)。光源
A
影响球体D
,但不影响球体C
。光源B
影响球体C
,但不影响球体D
。
下图展示了此示例:
光源 A
影响球体 D
,但不影响球体 C
。光源 B
影响球体 C
,但不影响球体 D
。
要实现此示例,请执行以下操作:
在项目中启用光源层 (Light Layers)。
创建两个点光源(分别命名为
A
和B
)和两个球体(分别命名为C
和D
)。确定对象的位置,使两个球体都在光源的发光范围内。选择 Project Settings > Graphics > URP Global Settings。将 Light Layer 1 重命名为
Red
,将 Light Layer 2 重命名为Green
。选择光源
A
,将其颜色更改为绿色。选择光源B
,将其颜色更改为红色。进行此设置后,这两个光源对这两个球体均会产生影响。对光源和球体进行以下设置:
光源
A
:在 Light > General > Light Layer 属性中,清除所有选项,然后选择Green
。光源
B
:在 Light > General > Light Layer 属性中,清除所有选项,然后选择Red
。球体
C
:在 Mesh Renderer > Additional Settings > Rendering Layer Mask 属性中,选中所有选项,然后清除Green
。球体
D
:在 Mesh Renderer > Additional Settings > Rendering Layer Mask 属性中,选中所有选项,然后清除Red
。现在,点光源
A
影响球体D
,但不影响球体C
。点光源B
影响球体C
,但不影响球体D
。
如何使用 Custom Shadow Layers
在上图中,光源 A
不影响球体 C
,因此该球体不会从光源 A
投射阴影。
Custom Shadow Layers 属性可让您配置场景,以便球体 C
从光源 A
投射阴影。
选择光源
A
。在 Light > Shadows 中,选择 Custom Shadow Layers 属性。Unity 会显示 Layer 属性。
在 Layer 属性中,选择球体 C 所属的光源层。
现在,光源 A
不影响球体 C
,但球体 C
会从光源 A
投射阴影。
下图分别显示了 Custom Shadow Layers 属性关闭和开启时的场景。