private void ExitTransition(UITransitionMode mode) { // Analysis the filter view need to show List <UIType> curfilter = new List <UIType>(); for (int i = blockViewlist.Count - 1; i >= 0; i--) { curfilter.Add(blockViewlist[i]); if (i == (blockViewlist.Count - (int)mode)) { break; } } //return to filter view for (int i = curfilter.Count; i > 0; i--) { if (curfilter[i - 1] != _viewStack.Peek().uiType) { UIManager.Instance.GetUIByType(curfilter[i - 1], (v, p) => { v.OnEnter(); }); } } // return to the view that come from if (!curfilter.Contains(_lastViewType) && !_lastViewType.Equals(UIType.None)) { UIManager.Instance.GetUIByType(_lastViewType, (v, p) => { v.OnEnter(); }); } }
private void EnterTransition(UITransitionMode mode) { if (mode != UITransitionMode.None) { // Analysis the filter view need to keep List <UIType> filter = new List <UIType>(); for (int i = 0; i < blockViewlist.Count; i++) { if (i == (blockViewlist.Count - (int)mode)) { break; } filter.Add(blockViewlist[i]); } // Exit all view that we don't need if (_viewStack.Count > 0) { int viewStackCount = _viewStack.Count; for (int i = 0; i < viewStackCount; i++) { //Debug.Log( uiType + " Exit UI type : " + _viewStack.Peek().uiType ); if (!filter.Contains(_viewStack.Peek().uiType)) { //Debug.Log( uiType + " Exit UI type : " + _viewStack.Peek().uiType ); ViewBase v = _viewStack.Peek(); v.OnExit(false); } else { //Debug.Log( uiType + " Didn't Exit UI type : " + _viewStack.Peek().uiType ); break; } } } // if lost some filter ui, we need to get it back if (_viewStack.Count < filter.Count) { int index = blockViewlist.IndexOf(_viewStack.Peek().uiType); for (int i = blockViewlist.Count - 1; i >= 0; i--) { if (i > index) { UIManager.Instance.GetUIByType(blockViewlist[i], (v, p) => { v.OnEnter(); DebugUtils.Log(DebugUtils.Type.UI, string.Format("Add " + blockViewlist[i])); }); } } } } if (!_viewStack.Contains(this)) { _viewStack.Push(this); } else { DebugUtils.LogError(DebugUtils.Type.UI, string.Format("Already has the same ui in viewStack!! UIType = {0}", uiType)); } }