namespace UnityEngine.AdaptivePerformance
{
///
/// A scaler used by for adjusting what view distance is applied to the camera.
///
public class AdaptiveViewDistance : AdaptivePerformanceScaler
{
float m_DefaultFarClipPlane = -1;
///
/// Ensures settings are applied during startup.
///
protected override void Awake()
{
base.Awake();
if (m_Settings == null)
return;
ApplyDefaultSetting(m_Settings.scalerSettings.AdaptiveViewDistance);
}
///
/// Callback when scaler gets disabled and removed from indexer
///
protected override void OnDisabled()
{
if (!Camera.main || m_DefaultFarClipPlane == -1)
return;
Camera.main.farClipPlane = m_DefaultFarClipPlane;
}
///
/// Callback when scaler gets enabled and added to the indexer
///
protected override void OnEnabled()
{
if (!Camera.main)
return;
m_DefaultFarClipPlane = Camera.main.farClipPlane;
}
///
/// Callback for any level change.
///
protected override void OnLevel()
{
if (!Camera.main)
return;
if (m_DefaultFarClipPlane == -1)
m_DefaultFarClipPlane = Camera.main.farClipPlane;
if (ScaleChanged())
Camera.main.farClipPlane = Scale;
}
}
}