暫無描述
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.

SimulatorProviderLoader.cs 4.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using UnityEngine;
  2. using System.Collections.Generic;
  3. using UnityEngine.AdaptivePerformance;
  4. using UnityEditor.AdaptivePerformance.Editor;
  5. using UnityEngine.AdaptivePerformance.Provider;
  6. namespace UnityEditor.AdaptivePerformance.Simulator.Editor
  7. {
  8. /// <summary>
  9. /// SimulatorProviderLoader implements the loader for the Adaptive Performance Device Simulator plugin.
  10. /// </summary>
  11. [AdaptivePerformanceSupportedBuildTargetAttribute(BuildTargetGroup.Standalone)]
  12. public class SimulatorProviderLoader : AdaptivePerformanceLoaderHelper
  13. {
  14. static List<AdaptivePerformanceSubsystemDescriptor> s_SimulatorSubsystemDescriptors =
  15. new List<AdaptivePerformanceSubsystemDescriptor>();
  16. /// <summary>
  17. /// Returns if the provider loader was initialized successfully.
  18. /// </summary>
  19. public override bool Initialized
  20. {
  21. get { return simulatorSubsystem != null; }
  22. }
  23. /// <summary>
  24. /// Returns if the provider loader is currently running.
  25. /// </summary>
  26. public override bool Running
  27. {
  28. get { return simulatorSubsystem != null && simulatorSubsystem.running; }
  29. }
  30. /// <summary>Returns the currently active Simulator Subsystem instance, if any.</summary>
  31. public SimulatorAdaptivePerformanceSubsystem simulatorSubsystem
  32. {
  33. get { return GetLoadedSubsystem<SimulatorAdaptivePerformanceSubsystem>(); }
  34. }
  35. /// <summary>
  36. /// Implementation of <see cref="AdaptivePerformanceLoader.GetDefaultSubsystem"/>
  37. /// </summary>
  38. /// <returns>The Simulator as currently loaded default subststem. Adaptive Performance always initializes the first subsystem and uses it as a default, because only one subsystem can be present at a given time. You can change subsystem order in the Adaptive Performance Provider Settings.</returns>
  39. public override ISubsystem GetDefaultSubsystem()
  40. {
  41. return simulatorSubsystem;
  42. }
  43. /// <summary>
  44. /// Implementation of <see cref="AdaptivePerformanceLoader.GetSettings"/>.
  45. /// </summary>
  46. /// <returns>Returns the Simulator settings.</returns>
  47. public override IAdaptivePerformanceSettings GetSettings()
  48. {
  49. return SimulatorProviderSettings.GetSettings();
  50. }
  51. /// <summary>Implementation of <see cref="AdaptivePerformanceLoader.Initialize"/>.</summary>
  52. /// <returns>True if successfully initialized the Simulator subsystem, false otherwise.</returns>
  53. public override bool Initialize()
  54. {
  55. CreateSubsystem<AdaptivePerformanceSubsystemDescriptor, SimulatorAdaptivePerformanceSubsystem>(s_SimulatorSubsystemDescriptors, "SimulatorAdaptivePerformanceSubsystem");
  56. if (simulatorSubsystem == null)
  57. {
  58. Debug.LogError("Unable to start the Simulator subsystem.");
  59. }
  60. return simulatorSubsystem != null;
  61. }
  62. /// <summary>Implementation of <see cref="AdaptivePerformanceLoader.Start"/>.</summary>
  63. /// <returns>True if successfully started the Simulator subsystem, false otherwise.</returns>
  64. public override bool Start()
  65. {
  66. StartSubsystem<SimulatorAdaptivePerformanceSubsystem>();
  67. return true;
  68. }
  69. /// <summary>Implementation of <see cref="AdaptivePerformanceLoader.Stop"/>.</summary>
  70. /// <returns>True if successfully stopped the Simulator subsystem, false otherwise</returns>
  71. public override bool Stop()
  72. {
  73. StopSubsystem<SimulatorAdaptivePerformanceSubsystem>();
  74. return true;
  75. }
  76. /// <summary>Implementation of <see cref="AdaptivePerformanceLoader.Deinitialize"/>.</summary>
  77. /// <returns>True if successfully deinitialized the Simulator subsystem, false otherwise.</returns>
  78. public override bool Deinitialize()
  79. {
  80. DestroySubsystem<SimulatorAdaptivePerformanceSubsystem>();
  81. return base.Deinitialize();
  82. }
  83. }
  84. }