namespace SC.XR.Unity { public enum SCModulePriority { High, Middle, Low, } public interface ISCModule : ISCLifeCycle { string ModuleName { get; set; } ISCModule FatherModule { get; set; } bool IsModuleInit { get; set; } bool IsModuleStarted { get; set; } bool IsMono { get; set; } bool IsEffectGameObject { get; set; } SCModulePriority Priority { get; set; } T GetSubModule<T>() where T : ISCModule; T GetFatherModule<T>() where T : ISCModule; /// <summary> /// 模块初始化 /// </summary> void ModuleInit(bool isEffectGameObject = true,SCModulePriority priority = SCModulePriority.Middle); //void ModuleEnable(); /// <summary> /// 模块启动,同Mono OnEnable /// </summary> void ModuleStart(); void ModuleUpdate(); void ModuleLateUpdate(); void ModuleEndOfFrame(); /// <summary> /// 模块停止,同Mono OnDisable /// </summary> void ModuleStop(); /// <summary> /// 模块销毁 /// </summary> void ModuleDestroy(); } }