Files
modular-vr/Assets/Desert/Runtime/Button.cs
2022-11-20 12:52:22 +01:00

53 lines
1.1 KiB
C#

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;
}
}
}