Bez popisu
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.

AdaptiveFramerate.cs 2.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. namespace UnityEngine.AdaptivePerformance
  2. {
  3. /// <summary>
  4. /// A scaler used by <see cref="AdaptivePerformanceIndexer"/> to adjust the application update rate using <see cref="Application.targetFrameRate"/>.
  5. /// </summary>
  6. public class AdaptiveFramerate : AdaptivePerformanceScaler
  7. {
  8. int m_DefaultFPS;
  9. /// <summary>
  10. /// Ensures settings are applied during startup.
  11. /// </summary>
  12. protected override void Awake()
  13. {
  14. base.Awake();
  15. if (m_Settings == null)
  16. return;
  17. ApplyDefaultSetting(m_Settings.scalerSettings.AdaptiveFramerate);
  18. }
  19. /// <summary>
  20. /// Callback when scaler gets disabled and removed from indexer
  21. /// </summary>
  22. protected override void OnDisabled()
  23. {
  24. Application.targetFrameRate = m_DefaultFPS;
  25. }
  26. /// <summary>
  27. /// Callback when scaler gets enabled and added to the indexer
  28. /// </summary>
  29. protected override void OnEnabled()
  30. {
  31. m_DefaultFPS = Application.targetFrameRate;
  32. Application.targetFrameRate = (int)MaxBound;
  33. }
  34. /// <summary>
  35. /// Callback for when the quality level is decreased/scaler level increased.
  36. /// </summary>
  37. protected override void OnLevelIncrease()
  38. {
  39. base.OnLevelIncrease();
  40. var framerateDecrease = 1;
  41. if (Holder.Instance.Indexer.PerformanceAction == StateAction.FastDecrease)
  42. framerateDecrease = 5;
  43. var fps = Application.targetFrameRate - framerateDecrease;
  44. if (fps >= MinBound && fps <= MaxBound)
  45. Application.targetFrameRate = fps;
  46. }
  47. /// <summary>
  48. /// Callback for when the quality level is increased/scaler level decreased.
  49. /// </summary>
  50. protected override void OnLevelDecrease()
  51. {
  52. base.OnLevelDecrease();
  53. var fps = Application.targetFrameRate + 5;
  54. if (fps >= MinBound && fps <= MaxBound)
  55. Application.targetFrameRate = fps;
  56. }
  57. }
  58. }