public void Update() { if (_allUIView == null || _allUIView.Count <= 0) { return; } float deltaTime = Time.deltaTime; for (UI_TYPE type = UI_TYPE.UI_NONE; type < UI_TYPE.UI_MAX; ++type) { BaseUIView baseUIView = null; if (_allUIView.TryGetValue(type, out baseUIView)) { baseUIView.Core(deltaTime); if (baseUIView.IsNeedDestroy()) { _allUIView.Remove(type); _backUIViewQueue.Remove(baseUIView); _openUIViewQueue.Remove(baseUIView); baseUIView.Hide(); baseUIView.Release(); GameObject.Destroy(baseUIView.gameObject); } } } }
public void Release() { if (_allUIView == null) { return; } for (UI_TYPE i = UI_TYPE.UI_NONE; i < UI_TYPE.UI_MAX; ++i) { BaseUIView uiView = null; if (_allUIView.TryGetValue(i, out uiView)) { if (uiView != null) { if (!uiView.IsClose()) { uiView.Hide(); } uiView.Release(); GameObject.Destroy(uiView.gameObject); } } } _UICamera = null; _allUIView.Clear(); _backUIViewQueue.Clear(); Resources.UnloadUnusedAssets(); }
public void CloseUIView(BaseUIView closeUIView) { if (closeUIView == null) { return; } if (closeUIView.DeleteOnHide) { _allUIView.Remove(closeUIView.UIType); _backUIViewQueue.Remove(closeUIView); _openUIViewQueue.Remove(closeUIView); closeUIView.Hide(); closeUIView.Release(); GameObject.Destroy(closeUIView.gameObject); } else { ChangeUIViewParent(closeUIView, true); closeUIView.ChangeCameraRenderTexture(false); closeUIView.ChangeCanvasLayer(HideLayer); closeUIView.ChangeGraphicRaycasterState(false); _openUIViewQueue.Remove(closeUIView); closeUIView.Hide(); } }