public override void PreInit() { OnPreInit?.Invoke(Manager); }
public static IEnumerator InitAll(IEnumerator onInit, Action <double> onProgress) { double maxIter = Controllers.Count * 3; if (maxIter == 0) { maxIter = 1; } double currentIter = 0; double currentValue = 0; OnPreInit.Invoke(AddObservers, AddObservers); double part = 1 / maxIter; Action <double> initProgress = (progress) => { onProgress(currentValue + (progress * part)); }; foreach (var controller in Controllers) { yield return(controller.Value.AddObservers()); onProgress(currentValue = (currentIter++ / maxIter)); } foreach (var controller in Controllers) { yield return(controller.Value.Bind()); onProgress(currentValue = (currentIter++ / maxIter)); } foreach (var controller in Controllers) { BaseController baseController = controller.Value; yield return(baseController.Init(initProgress)); } foreach (var controller in Controllers) { yield return(controller.Value.WaitForInitialize()); onProgress(currentValue = (currentIter++ / maxIter)); } foreach (var controller in Controllers) { controller.Value.PostInit(); } foreach (var controller in Controllers) { controller.Value.enabled = true; } #if MMDevelop Debug.Log("BaseController.Init END"); #endif if (onInit != null) { yield return(onInit); } }