using UnityEngine; namespace DDD { public abstract class BaseUi : MonoBehaviour { protected GameObject _panel; public virtual bool IsBlockingTime => false; public virtual bool IsOpen => _panel.activeSelf; protected virtual void Awake() { _panel = transform.Find(CommonConstants.Panel).gameObject; } protected virtual void Start() { TryRegister(); Close(); } protected virtual void OnDestroy() { TryUnregister(); } protected virtual void TryRegister() { } protected virtual void TryUnregister() { } public virtual void Open() => _panel.SetActive(true); public virtual void Close() => _panel.SetActive(false); } }