using UnityEngine; using UnityEngine.AdaptivePerformance; static class AdaptivePerformanceConfig { /// /// In case you want to manually override settings during startup, this can be done with the IAdaptivePerformanceSettings. /// [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterAssembliesLoaded)] static void Setup() { if (!AdaptivePerformanceGeneralSettings.Instance || !AdaptivePerformanceGeneralSettings.Instance.Manager || !AdaptivePerformanceGeneralSettings.Instance.Manager.isInitializationComplete) return; IAdaptivePerformanceSettings settings = AdaptivePerformanceGeneralSettings.Instance.Manager.activeLoader.GetSettings(); if (settings == null) return; settings.automaticPerformanceMode = false; settings.logging = true; Screen.sleepTimeout = SleepTimeout.NeverSleep; Application.targetFrameRate = 60; Debug.Log($"AdaptivePerformanceConfig setting automatic performance mode to {settings.automaticPerformanceMode},logging to {settings.logging} targetFrameRate to {Application.targetFrameRate}. Override in Sample on demand."); } } public class AdaptivePerformanceSettings : MonoBehaviour { public bool AdaptiveBatching = false; public bool AdaptiveFramerate = false; public bool AdaptiveLOD = false; public bool AdaptiveLut = false; public bool AdaptiveMSAA = false; public bool AdaptiveResolution = false; public bool AdaptiveShadowCascades = false; public bool AdaptiveShadowDistance = false; public bool AdaptiveShadowmapResolution = false; public bool AdaptiveShadowQuality = false; public bool AdaptiveTransparency = false; public bool AdaptiveSorting = false; public bool AdaptiveViewDistance = false; public bool AdaptiveVRR = false; public bool AdaptivePhysics = false; public bool AdaptiveDecals = false; public bool AdaptiveLayerCulling = false; /// /// In case you want to manually override settings from the Setting menu during awake, this can be done with the IAdaptivePerformanceSettings. /// private void Awake() { if (!AdaptivePerformanceGeneralSettings.Instance || !AdaptivePerformanceGeneralSettings.Instance.Manager || !AdaptivePerformanceGeneralSettings.Instance.Manager.isInitializationComplete) return; IAdaptivePerformanceSettings settings = AdaptivePerformanceGeneralSettings.Instance.Manager.activeLoader.GetSettings(); if (settings == null) return; settings.scalerSettings.AdaptiveBatching.enabled = AdaptiveBatching; settings.scalerSettings.AdaptiveFramerate.enabled = AdaptiveFramerate; settings.scalerSettings.AdaptiveLOD.enabled = AdaptiveLOD; settings.scalerSettings.AdaptiveLut.enabled = AdaptiveLut; settings.scalerSettings.AdaptiveMSAA.enabled = AdaptiveMSAA; settings.scalerSettings.AdaptiveResolution.enabled = AdaptiveResolution; settings.scalerSettings.AdaptiveShadowCascade.enabled = AdaptiveShadowCascades; settings.scalerSettings.AdaptiveShadowDistance.enabled = AdaptiveShadowDistance; settings.scalerSettings.AdaptiveShadowmapResolution.enabled = AdaptiveShadowmapResolution; settings.scalerSettings.AdaptiveShadowQuality.enabled = AdaptiveShadowQuality; settings.scalerSettings.AdaptiveSorting.enabled = AdaptiveSorting; settings.scalerSettings.AdaptiveTransparency.enabled = AdaptiveTransparency; settings.scalerSettings.AdaptiveViewDistance.enabled = AdaptiveViewDistance; #if UNITY_ADAPTIVE_PERFORMANCE_SAMSUNG_ANDROID var adaptiveVRR = GameObject.FindObjectOfType(); if (adaptiveVRR) adaptiveVRR.Enabled = AdaptiveVRR; #endif settings.scalerSettings.AdaptivePhysics.enabled = AdaptivePhysics; settings.scalerSettings.AdaptiveDecals.enabled = AdaptiveDecals; settings.scalerSettings.AdaptiveLayerCulling.enabled = AdaptiveLayerCulling; } }