public void CloseNotAnimated(WooPanel panel, bool notify = true) { if (panel.IsClosed()) { return; } RebuildIfPanelGameObjectIsNull(panel); panel.gameObject.SetActive(true); panel.PanelState = PanelState.IsClosing; var children = GetChildren(panel); for (int i = 0; i < children.Count; i++) { Close(children[i].Panel, true, notify); } if (notify) { panel.NotifyClosingBegin(); } CloseImmediately(panel, notify); panel.gameObject.SetActive(panel.PanelProperties.ActiveWhenClosed); }
public void PlayCloseAnimationImmdiately(WooPanel panel, bool notify = true) { panel.gameObject.SetActive(true); panelNodes[panel].StopCoroutines(); panel.PanelState = PanelState.IsClosing; if (notify) { panel.NotifyClosingBegin(); } panel.PanelState = PanelState.Closed; if (notify) { panel.NotifyClosingEnd(); } panel.PanelState = PanelState.IsClosing; RewindToEndPanelAnimation(panel); SamplePanelAnimator(panel); panel.PanelState = PanelState.Closed; panel.gameObject.SetActive(panel.PanelProperties.ActiveWhenClosed); }
public void CloseAnimated(WooPanel panel, bool notify = true) { if (IsClosed(panel) || panelNodes[panel].IsClosing || panelNodes[panel].IsWaitingToClose) { return; } if (panel == null) { return; } RebuildIfPanelGameObjectIsNull(panel); panel.gameObject.SetActive(true); panelNodes[panel].StopCoroutines(); panelNodes[panel].IsWaitingToClose = true; RewindPanelAnimation(panel); var children = GetChildren(panel); var timeForChildrenToClose = TimeForChildrenToClose(panel) * panel.PanelProperties.ChildrenToClose; for (int i = 0; i < children.Count; i++) { Close(children[i].Panel); } panelNodes[panel].waitingTime = timeForChildrenToClose; panelNodes[panel].remainingWaitingTime = timeForChildrenToClose; panelNodes[panel].Invoke(timeForChildrenToClose, () => { panelNodes[panel].IsClosing = true; if (notify) { panel.NotifyClosingBegin(); } }); panelNodes[panel].Invoke(TimeToClose(panel), () => { CloseImmediately(panel, notify); }); }