/// <summary> /// Irá fechar se estiver no estado Abrir, alterar o estado e lançar o evento. /// </summary> public virtual void Close() { if (State != OpenableState.Opened) { return; } State = OpenableState.Closing; onClosing.Invoke(); }
protected virtual void Opened() { State = OpenableState.Opened; if (_callback != null) { _callback(); } _callback = null; onOpened.Invoke(); }
/// <summary> /// Irá abrir estando no Fechada, irá alterar o estado e lançar o evento. /// </summary> public virtual void Open() { if (State != OpenableState.Closed) { return; } if (DeactiveOnClosed) { gameObject.SetActive(true); } State = OpenableState.Opening; onOpening.Invoke(); }
protected virtual void Closed() { State = OpenableState.Closed; if (_callback != null) { _callback(); } _callback = null; onClosed.Invoke(); if (DeactiveOnClosed) { gameObject.SetActive(false); } }
/// <summary> /// Forçar estado aberto lançando evento. /// </summary> public virtual void HardOpen() { State = OpenableState.Opening; onOpening.Invoke(); }
/// <summary> /// Forçar estado fechado lançando evento. /// </summary> public virtual void HardClose() { State = OpenableState.Closing; onClosing.Invoke(); }