示例#1
0
        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);
                    }
                }
            }
        }
示例#2
0
        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();
        }
示例#3
0
        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();
            }
        }