Nessuna descrizione
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

AdaptivePerformanceSettings.cs 4.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using UnityEngine;
  2. using UnityEngine.AdaptivePerformance;
  3. static class AdaptivePerformanceConfig
  4. {
  5. /// <summary>
  6. /// In case you want to manually override settings during startup, this can be done with the IAdaptivePerformanceSettings.
  7. /// </summary>
  8. [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterAssembliesLoaded)]
  9. static void Setup()
  10. {
  11. if (!AdaptivePerformanceGeneralSettings.Instance || !AdaptivePerformanceGeneralSettings.Instance.Manager || !AdaptivePerformanceGeneralSettings.Instance.Manager.isInitializationComplete)
  12. return;
  13. IAdaptivePerformanceSettings settings = AdaptivePerformanceGeneralSettings.Instance.Manager.activeLoader.GetSettings();
  14. if (settings == null)
  15. return;
  16. settings.automaticPerformanceMode = false;
  17. settings.logging = true;
  18. Screen.sleepTimeout = SleepTimeout.NeverSleep;
  19. Application.targetFrameRate = 60;
  20. Debug.Log($"AdaptivePerformanceConfig setting automatic performance mode to {settings.automaticPerformanceMode},logging to {settings.logging} targetFrameRate to {Application.targetFrameRate}. Override in Sample on demand.");
  21. }
  22. }
  23. public class AdaptivePerformanceSettings : MonoBehaviour
  24. {
  25. public bool AdaptiveBatching = false;
  26. public bool AdaptiveFramerate = false;
  27. public bool AdaptiveLOD = false;
  28. public bool AdaptiveLut = false;
  29. public bool AdaptiveMSAA = false;
  30. public bool AdaptiveResolution = false;
  31. public bool AdaptiveShadowCascades = false;
  32. public bool AdaptiveShadowDistance = false;
  33. public bool AdaptiveShadowmapResolution = false;
  34. public bool AdaptiveShadowQuality = false;
  35. public bool AdaptiveTransparency = false;
  36. public bool AdaptiveSorting = false;
  37. public bool AdaptiveViewDistance = false;
  38. public bool AdaptiveVRR = false;
  39. public bool AdaptivePhysics = false;
  40. public bool AdaptiveDecals = false;
  41. public bool AdaptiveLayerCulling = false;
  42. /// <summary>
  43. /// In case you want to manually override settings from the Setting menu during awake, this can be done with the IAdaptivePerformanceSettings.
  44. /// </summary>
  45. private void Awake()
  46. {
  47. if (!AdaptivePerformanceGeneralSettings.Instance || !AdaptivePerformanceGeneralSettings.Instance.Manager || !AdaptivePerformanceGeneralSettings.Instance.Manager.isInitializationComplete)
  48. return;
  49. IAdaptivePerformanceSettings settings = AdaptivePerformanceGeneralSettings.Instance.Manager.activeLoader.GetSettings();
  50. if (settings == null)
  51. return;
  52. settings.scalerSettings.AdaptiveBatching.enabled = AdaptiveBatching;
  53. settings.scalerSettings.AdaptiveFramerate.enabled = AdaptiveFramerate;
  54. settings.scalerSettings.AdaptiveLOD.enabled = AdaptiveLOD;
  55. settings.scalerSettings.AdaptiveLut.enabled = AdaptiveLut;
  56. settings.scalerSettings.AdaptiveMSAA.enabled = AdaptiveMSAA;
  57. settings.scalerSettings.AdaptiveResolution.enabled = AdaptiveResolution;
  58. settings.scalerSettings.AdaptiveShadowCascade.enabled = AdaptiveShadowCascades;
  59. settings.scalerSettings.AdaptiveShadowDistance.enabled = AdaptiveShadowDistance;
  60. settings.scalerSettings.AdaptiveShadowmapResolution.enabled = AdaptiveShadowmapResolution;
  61. settings.scalerSettings.AdaptiveShadowQuality.enabled = AdaptiveShadowQuality;
  62. settings.scalerSettings.AdaptiveSorting.enabled = AdaptiveSorting;
  63. settings.scalerSettings.AdaptiveTransparency.enabled = AdaptiveTransparency;
  64. settings.scalerSettings.AdaptiveViewDistance.enabled = AdaptiveViewDistance;
  65. #if UNITY_ADAPTIVE_PERFORMANCE_SAMSUNG_ANDROID
  66. var adaptiveVRR = GameObject.FindObjectOfType<AdaptiveVariableRefreshRate>();
  67. if (adaptiveVRR)
  68. adaptiveVRR.Enabled = AdaptiveVRR;
  69. #endif
  70. settings.scalerSettings.AdaptivePhysics.enabled = AdaptivePhysics;
  71. settings.scalerSettings.AdaptiveDecals.enabled = AdaptiveDecals;
  72. settings.scalerSettings.AdaptiveLayerCulling.enabled = AdaptiveLayerCulling;
  73. }
  74. }