Library -Artifacts
4.8 KiB
Light Layers
The Light Layers feature lets you configure certain Lights to affect only specific GameObjects.
For example, in the following illustration, Light A
affects Sphere D
, but not Sphere C
. Light B
affects Sphere C
, but not Sphere D
.
To read how to implement this example, see section How to use Light Layers.
How to enable Light Layers
To enable Light Layers in your project:
-
In the URP Asset, in the Lighting section, click the vertical ellipsis icon (⋮) and select Show Additional Properties
-
In the URP Asset, in the Lighting section, select Light Layers.
When you enable Light Layers, Unity shows the following extra properties on each Light:
How to edit Light Layer names
To edit the names of Light Layers:
-
Go to Project Settings > Graphics > URP Global Settings.
-
Edit the Light Layer names in the Light Layer Names (3D) section.
How to use Light Layers
This section describes how to configure the following application example:
-
The Scene contains two Point Lights (marked
A
andB
in the illustration) and two Sphere GameObjects (C
andD
in the illustration). -
Light
A
affects SphereD
, but not SphereC
. LightB
affects SphereC
, but not SphereD
.
The following illustration shows the example:
Light A
affects Sphere D
, but not Sphere C
. Light B
affects Sphere C
, but not Sphere D
.
To implement the example:
-
Enable Light Layers in your project.
-
Create two Point Lights (call them
A
, andB
) and two Spheres (call themC
, andD
). Position the objects so that both Spheres are within the emission range of Lights. -
Go to Project Settings > Graphics > URP Global Settings. Rename Light Layer 1 to
Red
, and Light Layer 2 toGreen
. -
Select Light
A
, change its color to green. Select LightB
, change its color to red. With this setup, both Lights affect both Spheres. -
Make the following settings on Lights and Spheres:
Light
A
: in the property Light > General > Light Layer, clear all options, and selectGreen
.Light
B
: in the property Light > General > Light Layer, clear all options, and selectRed
.Sphere
C
: in the property Mesh Renderer > Additional Settings > Rendering Layer Mask, select all options, clearGreen
.Sphere
D
: in the property Mesh Renderer > Additional Settings > Rendering Layer Mask, select all options, clearRed
.Now Point Light
A
affects SphereD
, but not SphereC
. Point LightB
affects SphereC
, but not SphereD
.
How to use Custom Shadow Layers
In the illustration above, Light A
does not affect Sphere C
, and the Sphere does not cast shadow from Light A
.
The Custom Shadow Layers property lets you configure the Scene so that Sphere C
casts the shadow from Light A
.
-
Select Light
A
. -
In Light > Shadows, select the Custom Shadow Layers property. Unity shows the Layer property.
-
In the Layer property, select the Light Layer that Sphere C belongs to.
Now Light A
does not affect Sphere C
, but Sphere C
casts shadow from Light A
.
The following illustrations show the Scene with the Custom Shadow Layers property off and on.