private void InitWindow(UILoadState uiState, UIController uiBase, bool open, params object[] args) { uiBase.OnInit(); if (OnInitEvent != null) { OnInitEvent(uiBase); } if (open) { OnOpen(uiState, args); } if (!open) { if (!uiState.IsStaticUI) { CloseWindow(uiBase.UIName); // Destroy return; } else { uiBase.gameObject.SetActive(false); } } uiState.OnUIWindowLoadedCallbacks(uiState, uiBase); }
private void InitWindow(UILoadState uiState, UIController uiBase, bool open, params object[] args) { System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch(); stopwatch.Start(); uiBase.OnInit(); stopwatch.Stop(); Log.Debug("OnInit UI {0}, cost {1}", uiBase.name, stopwatch.Elapsed.TotalMilliseconds * 0.001f); if (OnInitEvent != null) { OnInitEvent(uiBase); } if (open) { OnOpen(uiState, args); } if (!open) { if (!uiState.IsStaticUI) { CloseWindow(uiBase.UIName); // Destroy return; } else { uiBase.gameObject.SetActive(false); } } uiState.OnUIWindowLoadedCallbacks(uiState, uiBase); }
private void InitWindow(UILoadState uiState, UIController uiBase, bool open, params object[] args) { if (AppConfig.IsLogFuncCost || AppConfig.IsSaveCostToFile) { KProfiler.BeginWatch("UI.Init"); } uiBase.OnInit(); KWatchResult profilerData = null; if (AppConfig.IsLogFuncCost) { profilerData = KProfiler.EndWatch("UI.Init", string.Concat(uiState.InstanceName, ".OnInit")); } if (AppConfig.IsSaveCostToFile) { if (profilerData == null) { profilerData = KProfiler.EndWatch("UI.Init", string.Concat(uiState.InstanceName, ".OnInit")); } LogFileRecorder.WriteUILog(uiState.InstanceName, LogFileRecorder.UIState.OnInit, profilerData.costTime); } if (OnInitEvent != null) { OnInitEvent(uiBase); } if (open) { OnOpen(uiState, args); } if (!open) { if (!uiState.IsStaticUI) { CloseWindow(uiBase.UIName); // Destroy return; } else { if (uiBase.Canvas != null) { uiBase.Canvas.enabled = false; } else { uiBase.gameObject.SetActiveX(false); } } } uiState.OnUIWindowLoadedCallbacks(uiState, uiBase); }
private IEnumerator PreLoadUIAssetBundle(string windowTemplateName, UILoadState uiState) { if (uiState.UIResourceLoader != null) { uiState.UIResourceLoader.Release(true);// now! if (AppConfig.IsLogAbInfo) { Log.Info("Release UI ResourceLoader: {0}", uiState.UIResourceLoader.Url); } uiState.UIResourceLoader = null; } var request = new UILoadRequest(); yield return(KResourceModule.Instance.StartCoroutine(UiBridge.LoadUIAsset(uiState, request))); GameObject uiObj = (GameObject)request.Asset; if (uiObj != null) { InitUIAsset(uiObj); uiObj.transform.localRotation = Quaternion.identity; uiObj.transform.localScale = Vector3.one; // 具体加载逻辑结束...这段应该放到Bridge里 var canvas = uiObj.GetComponent <Canvas>(); if (canvas) { canvas.enabled = false; } else { uiObj.SetActiveX(false); } uiObj.name = uiState.TemplateName; var uiBase = UiBridge.CreateUIController(uiObj, uiState.TemplateName); if (uiState.UIWindow != null) { Log.Info("Destroy exist UI Window, maybe for reload"); GameObject.Destroy(uiState.UIWindow.CachedGameObject); uiState.UIWindow = null; } uiState.UIWindow = uiBase; uiState.WindowAsset = uiObj.GetComponent <UIWindowAsset>(); uiBase.UIName = uiBase.UITemplateName = uiState.TemplateName; UiBridge.UIObjectFilter(uiBase, uiObj); uiState.IsLoading = false; // Load完 uiState.OnUIWindowLoadedCallbacks(uiState, uiBase); if (uiState.OpenWhenFinish) { InitWindow(uiState, uiBase, true, uiState.OpenArgs); } else { if (OnInitEvent != null) { OnInitEvent(uiBase); } } } LoadingUICount--; }
private IEnumerator PreLoadUIAssetBundle(string windowTemplateName, UILoadState uiState) { if (uiState.UIResourceLoader != null) { uiState.UIResourceLoader.Release(true);// now! Log.Info("Release UI ResourceLoader: {0}", uiState.UIResourceLoader.Url); uiState.UIResourceLoader = null; } var request = new UILoadRequest(); yield return(KResourceModule.Instance.StartCoroutine(UiBridge.LoadUIAsset(uiState, request))); GameObject uiObj = (GameObject)request.Asset; GameObject uiRoot = GameObject.Find("UIRoot"); if (uiRoot == null) { uiRoot = new GameObject("UIRoot"); if (!SceneLoader.isLoadSceneAdditive) { GameObject.DontDestroyOnLoad(uiRoot); } } if (uiObj != null) { uiObj.transform.SetParent(uiRoot.transform); uiObj.transform.localRotation = Quaternion.identity; uiObj.transform.localScale = Vector3.one; // 具体加载逻辑结束...这段应该放到Bridge里 uiObj.SetActive(false); uiObj.name = uiState.TemplateName; var uiBase = UiBridge.CreateUIController(uiObj, uiState.TemplateName); if (uiState.UIWindow != null) { Log.Info("Destroy exist UI Window, maybe for reload"); GameObject.Destroy(uiState.UIWindow.CachedGameObject); uiState.UIWindow = null; } uiState.UIWindow = uiBase; uiBase.UIName = uiBase.UITemplateName = uiState.TemplateName; UiBridge.UIObjectFilter(uiBase, uiObj); uiState.IsLoading = false; // Load完 uiBase.gameObject.SetActive(false); uiState.OnUIWindowLoadedCallbacks(uiState, uiBase); if (uiState.OpenWhenFinish) { InitWindow(uiState, uiBase, true, uiState.OpenArgs); } else { if (OnInitEvent != null) { OnInitEvent(uiBase); } } } LoadingUICount--; }