Files
PrinceOfGlory/Packages/Custom/com.unity.render-pipelines.universal@14.0.9/Runtime/2D/Shadows/ShadowCasterGroup2D.cs
kridoo 6e91a0c7f0 111
2025-09-15 17:32:08 +08:00

66 lines
2.0 KiB
C#

using System.Collections.Generic;
using UnityEngine.Scripting.APIUpdating;
namespace UnityEngine.Rendering.Universal
{
/// <summary>
/// Class for 2D shadow caster groups.
/// </summary>
[MovedFrom("UnityEngine.Experimental.Rendering.Universal")]
public abstract class ShadowCasterGroup2D : MonoBehaviour
{
[SerializeField] internal int m_ShadowGroup = 0;
List<ShadowCaster2D> m_ShadowCasters;
internal virtual void CacheValues()
{
if (m_ShadowCasters != null)
{
for (int i = 0; i < m_ShadowCasters.Count; i++)
m_ShadowCasters[i].CacheValues();
}
}
/// <summary>
/// Returns a list of registered 2D shadow casters.
/// </summary>
/// <returns>A list of 2D shadow casters that have been registered..</returns>
public List<ShadowCaster2D> GetShadowCasters()
{
return m_ShadowCasters;
}
/// <summary>
/// Returns the shadow group.
/// </summary>
/// <returns>The shadow group used.</returns>
public int GetShadowGroup()
{
return m_ShadowGroup;
}
/// <summary>
/// Registers a 2D shadow caster.
/// </summary>
/// <param name="shadowCaster2D">The 2D shadow to register.</param>
public void RegisterShadowCaster2D(ShadowCaster2D shadowCaster2D)
{
if (m_ShadowCasters == null)
m_ShadowCasters = new List<ShadowCaster2D>();
m_ShadowCasters.Add(shadowCaster2D);
}
/// <summary>
/// Unregisters a 2D shadow caster.
/// </summary>
/// <param name="shadowCaster2D">The 2D shadow to unregister.</param>
public void UnregisterShadowCaster2D(ShadowCaster2D shadowCaster2D)
{
if (m_ShadowCasters != null)
m_ShadowCasters.Remove(shadowCaster2D);
}
}
}