using NaughtyAttributes; using UnityEngine; namespace EscapeRoomEngine.Desert.Runtime { public class Button : MonoBehaviour { public bool Active { get => _active; private set { _active = value; Pressed = Pressed; // check whether is still pressed } } public virtual bool Pressed { get => _pressed; protected set { _pressed = Active && value; } } private bool _active, _pressed; [Button(enabledMode: EButtonEnableMode.Playmode)] public void Enable() { Active = true; } [Button(enabledMode: EButtonEnableMode.Playmode)] public void Disable() { Active = false; } [Button(enabledMode: EButtonEnableMode.Playmode)] public void Press() { Pressed = true; } [Button(enabledMode: EButtonEnableMode.Playmode)] public void Release() { Pressed = false; } } }