public void ExitPanel(OnExitPanel onExitPanel = null) { if (stackUiBases.Count > 1) { GameObject go = stackUiBases.Pop(); //go.SetActive(false); if (onExitPanel != null) { onExitPanel(go); } else { DOTweenAnimation doTween = go.GetComponent <DOTweenAnimation>(); if (doTween != null) { UnityEvent unityEvent = new UnityEvent(); unityEvent.AddListener(() => { go.SetActive(false); Object.Destroy(go); }); doTween.onComplete = unityEvent; doTween.DOPlayBackwards(); } } //GameObject.Destroy(go); if (stackUiBases.Peek() != null) { GameObject goNew = stackUiBases.Peek(); goNew.SetActive(true); } } else { throw new Exception("UIPanel IS NULL, WRONG EXIT!"); } }
public void ChangePanel(PanelType panelType, OnExitPanel onExitPanel = null, OnEnterPanel onEnterPanel = null) { ExitPanel(onExitPanel); EnterPanel(panelType, onEnterPanel); }