/// <summary> /// Use Coroutine to initialize the two base modules: Resource & UI /// </summary> IEnumerator DoInit() { ICModule[] baseModules = new ICModule[] { // 基础三件套 CResourceManager.Instance, CUIManager.Instance, }; foreach (ICModule mod in baseModules) { yield return(StartCoroutine(mod.Init())); } CBase.Log("Finish Init ResourceManager + UIManager!"); if (BeforeInitModules != null) { yield return(StartCoroutine(BeforeInitModules())); } yield return(StartCoroutine(DoInitModules())); if (AfterInitModules != null) { yield return(StartCoroutine(AfterInitModules())); } }
/// <summary> /// Use Coroutine to initialize the two base modules: Resource & UI /// </summary> IEnumerator DoInit() { ICModule[] baseModules = new ICModule[] { // 基础三件套 CResourceManager.Instance, CUIManager.Instance, }; foreach (ICModule mod in baseModules) { float startInitTime = Time.time; yield return(StartCoroutine(mod.Init())); if (Debug.isDebugBuild) { CBase.Log("Init Module: #{0}# Time:{1}", mod.GetType().FullName, Time.time - startInitTime); } } CBase.Log("Finish Init ResourceManager + UIManager!"); if (BeforeInitModules != null) { yield return(StartCoroutine(BeforeInitModules())); } yield return(StartCoroutine(DoInitModules())); if (AfterInitModules != null) { yield return(StartCoroutine(AfterInitModules())); } }
/// <summary> /// Engine entry.... all begins from here /// </summary> public static CCosmosEngine New(GameObject gameObjectToAttach, ICModule[] modules, CoroutineDelegate before, CoroutineDelegate after) { CBase.Assert(gameObjectToAttach != null && modules != null); CCosmosEngine engine = gameObjectToAttach.AddComponent<CCosmosEngine>(); engine.GameModules = modules; engine.BeforeInitModules = before; engine.AfterInitModules = after; return engine; }
/// <summary> /// Use Coroutine to initialize the two base modules: Resource & UI /// </summary> IEnumerator DoInit() { var baseModules = new ICModule[] { // 基础三件套 CResourceModule.Instance, CUIModule.Instance, }; yield return(StartCoroutine(DoInitModules(baseModules))); CDebug.Log("Finish Init ResourceManager + UIManager!"); if (BeforeInitModules != null) { yield return(StartCoroutine(BeforeInitModules())); } yield return(StartCoroutine(DoInitModules(GameModules))); if (AfterInitModules != null) { yield return(StartCoroutine(AfterInitModules())); } }
/// <summary> /// Use Coroutine to initialize the two base modules: Resource & UI /// </summary> IEnumerator DoInit() { var baseModules = new ICModule[] { // 基础三件套 CResourceModule.Instance, CUIModule.Instance, }; var startInitTime = 0f; foreach (ICModule mod in baseModules) { if (Debug.isDebugBuild) startInitTime = Time.time; yield return StartCoroutine(mod.Init()); if (Debug.isDebugBuild) CDebug.Log("Init Module: #{0}# Time:{1}", mod.GetType().FullName, Time.time - startInitTime); } CDebug.Log("Finish Init ResourceManager + UIManager!"); if (BeforeInitModules != null) yield return StartCoroutine(BeforeInitModules()); yield return StartCoroutine(DoInitModules()); if (AfterInitModules != null) yield return StartCoroutine(AfterInitModules()); }
public static CCosmosEngine New(GameObject gameObjectToAttach, ICModule[] modules) { return New(gameObjectToAttach, modules, null, null); }
/// <summary> /// Use Coroutine to initialize the two base modules: Resource & UI /// </summary> IEnumerator DoInit() { var baseModules = new ICModule[] { // 基础三件套 CResourceModule.Instance, CUIModule.Instance, }; yield return StartCoroutine(DoInitModules(baseModules)); CDebug.Log("Finish Init ResourceManager + UIManager!"); if (BeforeInitModules != null) yield return StartCoroutine(BeforeInitModules()); yield return StartCoroutine(DoInitModules(GameModules)); if (AfterInitModules != null) yield return StartCoroutine(AfterInitModules()); }