74 lines
2.3 KiB
C#
74 lines
2.3 KiB
C#
|
using System.Collections.Generic;
|
||
|
using UnityEngine.Scripting.APIUpdating;
|
||
|
|
||
|
|
||
|
namespace UnityEngine.Rendering.Universal
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// Class for 2D shadow caster groups.
|
||
|
/// </summary>
|
||
|
[MovedFrom(false, "UnityEngine.Experimental.Rendering.Universal", "com.unity.render-pipelines.universal")]
|
||
|
public abstract class ShadowCasterGroup2D : MonoBehaviour
|
||
|
{
|
||
|
[SerializeField] internal int m_ShadowGroup = 0;
|
||
|
[SerializeField] internal int m_Priority = 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>();
|
||
|
|
||
|
int insertAtIndex = 0;
|
||
|
for (insertAtIndex = 0; insertAtIndex < m_ShadowCasters.Count; insertAtIndex++)
|
||
|
{
|
||
|
if (shadowCaster2D.m_Priority >= m_ShadowCasters[insertAtIndex].m_Priority)
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
m_ShadowCasters.Insert(insertAtIndex, 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);
|
||
|
}
|
||
|
}
|
||
|
}
|