using System; namespace UnityEngine.Rendering.Universal { /// /// Base class for 2D shadow shape providers. /// [Serializable] public abstract class Provider2D { /// /// Returns the priority used to order this provider in the ShadowCaster2D Casting Option dropdown. /// /// The menu priority for this provider. public virtual int MenuPriority() { return 0; } /// /// Indicates whether this provider reads data from a component on the GameObject. /// /// True if the provider uses component data; otherwise, false. public virtual bool UsesComponentData() { return true; } /// /// Called when the provider is initialized. /// public virtual void OnAwake() { } #if UNITY_EDITOR public virtual void OnSelected() { } public virtual void OnDrawGizmos(Transform transform) {} #endif internal abstract GUIContent Internal_ProviderName(string componentName); internal virtual bool Internal_IsRequiredComponentData(Component sourceComponent) { return sourceComponent is Transform; } } }