ISCModule.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. 
  2. namespace SC.XR.Unity {
  3. public enum SCModulePriority {
  4. High,
  5. Middle,
  6. Low,
  7. }
  8. public interface ISCModule : ISCLifeCycle {
  9. string ModuleName { get; set; }
  10. ISCModule FatherModule { get; set; }
  11. bool IsModuleInit { get; set; }
  12. bool IsModuleStarted { get; set; }
  13. bool IsMono { get; set; }
  14. bool IsEffectGameObject { get; set; }
  15. SCModulePriority Priority { get; set; }
  16. T GetSubModule<T>() where T : ISCModule;
  17. T GetFatherModule<T>() where T : ISCModule;
  18. /// <summary>
  19. /// 模块初始化
  20. /// </summary>
  21. void ModuleInit(bool isEffectGameObject = true,SCModulePriority priority = SCModulePriority.Middle);
  22. //void ModuleEnable();
  23. /// <summary>
  24. /// 模块启动,同Mono OnEnable
  25. /// </summary>
  26. void ModuleStart();
  27. void ModuleUpdate();
  28. void ModuleLateUpdate();
  29. void ModuleEndOfFrame();
  30. /// <summary>
  31. /// 模块停止,同Mono OnDisable
  32. /// </summary>
  33. void ModuleStop();
  34. /// <summary>
  35. /// 模块销毁
  36. /// </summary>
  37. void ModuleDestroy();
  38. }
  39. }