namespace UnityEngine.AdaptivePerformance
{
///
/// A scaler used by to adjust the number of shadow cascades to be used.
///
public class AdaptiveShadowCascade : AdaptivePerformanceScaler
{
int m_DefaultCascadeCount;
///
/// Ensures settings are applied during startup.
///
protected override void Awake()
{
base.Awake();
if (m_Settings == null)
return;
ApplyDefaultSetting(m_Settings.scalerSettings.AdaptiveShadowCascade);
}
///
/// Callback when scaler gets disabled and removed from indexer
///
protected override void OnDisabled()
{
AdaptivePerformanceRenderSettings.MainLightShadowCascadesCountBias = m_DefaultCascadeCount;
}
///
/// Callback when scaler gets enabled and added to the indexer
///
protected override void OnEnabled()
{
m_DefaultCascadeCount = AdaptivePerformanceRenderSettings.MainLightShadowCascadesCountBias;
}
///
/// Callback for any level change.
///
protected override void OnLevel()
{
if (ScaleChanged())
AdaptivePerformanceRenderSettings.MainLightShadowCascadesCountBias = (int)(2 * Scale);
}
}
}