暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

GetPerformanceModeUnit.cs 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #if VISUAL_SCRIPTING_ENABLED
  2. using Unity.VisualScripting;
  3. namespace UnityEngine.AdaptivePerformance.VisualScripting
  4. {
  5. [UnitShortTitle("Get Performance Mode")]
  6. [UnitSubtitle("Performance Mode")]
  7. [UnitCategory("AdaptivePerformance/Performance")]
  8. public class GetPerformanceModeUnit : Unit
  9. {
  10. [DoNotSerialize]
  11. public ValueOutput PerformanceMode { get; private set; }
  12. [DoNotSerialize]
  13. public ValueOutput IsStandard { get; private set; }
  14. [DoNotSerialize]
  15. public ValueOutput IsBattery { get; private set; }
  16. [DoNotSerialize]
  17. public ValueOutput IsOptimize { get; private set; }
  18. [DoNotSerialize]
  19. public ValueOutput IsCpu { get; private set; }
  20. [DoNotSerialize]
  21. public ValueOutput IsGpu { get; private set; }
  22. string m_PerformanceMode = AdaptivePerformance.PerformanceMode.Unknown.ToString();
  23. bool m_IsStandard = false;
  24. bool m_IsBattery = false;
  25. bool m_IsOptimize = false;
  26. bool m_IsCpu = false;
  27. bool m_IsGpu = false;
  28. protected override void Definition()
  29. {
  30. PerformanceMode = ValueOutput<string>(nameof(PerformanceMode), (flow) => { UpdateStats(); return m_PerformanceMode; });
  31. IsStandard = ValueOutput<bool>(nameof(IsStandard), (flow) => { UpdateStats(); return m_IsStandard; });
  32. IsBattery = ValueOutput<bool>(nameof(IsBattery), (flow) => { UpdateStats(); return m_IsBattery; });
  33. IsOptimize = ValueOutput<bool>(nameof(IsOptimize), (flow) => { UpdateStats(); return m_IsOptimize; });
  34. IsCpu = ValueOutput<bool>(nameof(IsCpu), (flow) => { UpdateStats(); return m_IsCpu; });
  35. IsGpu = ValueOutput<bool>(nameof(IsGpu), (flow) => { UpdateStats(); return m_IsGpu; });
  36. }
  37. void UpdateStats()
  38. {
  39. if (Application.isPlaying && Holder.Instance != null)
  40. {
  41. var pm = Holder.Instance.PerformanceModeStatus.PerformanceMode;
  42. m_PerformanceMode = pm.ToString();
  43. m_IsStandard = pm == AdaptivePerformance.PerformanceMode.Standard;
  44. m_IsBattery = pm == AdaptivePerformance.PerformanceMode.Battery;
  45. m_IsOptimize = pm == AdaptivePerformance.PerformanceMode.Optimize;
  46. m_IsCpu = pm == AdaptivePerformance.PerformanceMode.CPU;
  47. m_IsGpu = pm == AdaptivePerformance.PerformanceMode.GPU;
  48. }
  49. }
  50. }
  51. }
  52. #endif