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; } } }