/// <summary> /// Pop in a view and hide all underneath views /// </summary> /// <param name="_view">_view.</param> /// <param name="_inventoryElement">_inventory element.</param> /// <param name="_eAnimationViewTypeSHOW">_e animation view type SHO.</param> /// <param name="_eAnimationViewTypeHIDE">_e animation view type HID.</param> protected void ShowViewAndHideAll(UI_View _view, AnimationViewType _eAnimationViewTypeSHOW = AnimationViewType.ANIMATED, AnimationViewType _eAnimationViewTypeHIDE = AnimationViewType.ANIMATED) { bool bSameView = false; if (m_qPopedViews.Count > 0) { UI_View view1 = m_qPopedViews.Pop(); if (_view != view1) { view1.Hide(_eAnimationViewTypeHIDE); } else { m_qPopedViews.Push(_view); bSameView = true; } } if (!bSameView) { while (m_qPopedViews.Count > 0) { m_qPopedViews.Pop().Hide(_eAnimationViewTypeHIDE); } m_curPopedView = _view; m_qPopedViews.Push(m_curPopedView); m_curPopedView.Show(_eAnimationViewTypeSHOW); UpdateAllPopedViewZOrder(); ShowBlackBG(m_curPopedView); } }
/// <summary> /// Depop in all poped views to the desired view /// </summary> /// <param name="_view">_view.</param> /// <param name="_eAnimationViewTypeSHOW">_e animation view type SHO.</param> /// <param name="_eAnimationViewTypeHIDE">_e animation view type HID.</param> protected void HideToView(UI_View _view, AnimationViewType _eAnimationViewTypeSHOW = AnimationViewType.ANIMATED, AnimationViewType _eAnimationViewTypeHIDE = AnimationViewType.ANIMATED) { if (m_qPopedViews.Contains(_view)) { bool bFound = false; while (!bFound && m_qPopedViews.Count > 1) { UI_View view1 = m_qPopedViews.Pop(); UI_View view2 = m_qPopedViews.Pop(); if (view2 == _view) { m_curPopedView = view2; view1.Hide(_eAnimationViewTypeHIDE); m_qPopedViews.Push(view2); bFound = true; } } if (bFound) { //Check if desired is active, if not we active it if (!m_curPopedView.gameObject.activeInHierarchy) { m_curPopedView.Show(_eAnimationViewTypeSHOW); } else { m_curPopedView.Show(AnimationViewType.NONE); } UpdateAllPopedViewZOrder(); } } }
/// <summary> /// Depop in all views, only the pushed view will be shown /// </summary> /// <param name="_eAnimationViewType">_e animation view type.</param> protected virtual void HideAllViews(AnimationViewType _eAnimationViewType = AnimationViewType.ANIMATED) { while (m_qPopedViews.Count > 0) { UI_View view = m_qPopedViews.Pop(); if (view) { view.Hide(_eAnimationViewType); } } m_curPopedView = null; }
/// <summary> /// Depop in a view, last view in stack will be shown /// </summary> /// <param name="_view">_view.</param> /// <param name="_eAnimationViewTypeSHOW">_e animation view type SHO.</param> /// <param name="_eAnimationViewTypeHIDE">_e animation view type HID.</param> protected void HideView(UI_View _view, AnimationViewType _eAnimationViewTypeSHOW = AnimationViewType.ANIMATED, AnimationViewType _eAnimationViewTypeHIDE = AnimationViewType.ANIMATED) { if (m_qPopedViews.Contains(_view) && m_qPopedViews.Count > 0 && _view.gameObject.activeInHierarchy) { List <UI_View> lViews = new List <UI_View>(); bool bFound = false; while (!bFound && m_qPopedViews.Count > 0) { UI_View view = m_qPopedViews.Pop(); if (view == _view) { view.Hide(_eAnimationViewTypeHIDE); HideBlackBG(view); bFound = true; } else { lViews.Add(view); } } if (lViews.Count > 0) { for (int i = lViews.Count - 1; i >= 0; i--) { m_qPopedViews.Push(lViews[i]); } } if (m_qPopedViews.Count == 0) { m_curPopedView = null; } else { //Check if last pop is active, if not we active it UI_View view = m_qPopedViews.Pop(); m_curPopedView = view; if (!view.gameObject.activeInHierarchy) { view.Show(_eAnimationViewTypeSHOW); } else { view.Show(AnimationViewType.NONE); } m_qPopedViews.Push(view); UpdateAllPopedViewZOrder(); ShowBlackBG(m_curPopedView); } } }
/// <summary> /// Pop a view over the pushed view, if no pushed view => it will be set as the pushed view /// </summary> /// <param name="_view">_view.</param> /// <param name="_inventoryElement">_inventory element.</param> /// <param name="_eAnimationViewTypeSHOW">_e animation view type SHO.</param> /// <param name="_eAnimationViewTypeHIDE">_e animation view type HID.</param> protected void ShowViewAndHideLast(UI_View _view, AnimationViewType _eAnimationViewTypeSHOW = AnimationViewType.ANIMATED, AnimationViewType _eAnimationViewTypeHIDE = AnimationViewType.ANIMATED) { if (m_curPopedView != _view && !_view.gameObject.activeInHierarchy) { m_curPopedView = _view; if (m_qPopedViews.Count > 0) { UI_View view = m_qPopedViews.Pop(); view.Hide(_eAnimationViewTypeHIDE); m_qPopedViews.Push(view); } m_qPopedViews.Push(_view); m_curPopedView.Show(_eAnimationViewTypeSHOW); UpdateAllPopedViewZOrder(); ShowBlackBG(m_curPopedView); } }