Files
puzzle-game/Assets/Prefabs/Sensor/Scripts/Activateable.cs
2025-07-17 17:16:02 +02:00

28 lines
683 B
C#

using UnityEngine;
/// <summary>
/// Activateable is a base class for objects that can
/// be activated or deactivated by a sensor.
/// </summary>
public abstract class Activateable : MonoBehaviour
{
[Header("Activateable Configuration")]
public bool inverted;
public bool isActive;
protected abstract void OnActivation();
protected abstract void OnDeactivation();
public void SetActivation(bool state)
{
isActive = inverted ? !state : state;
if (isActive) OnActivation();
else OnDeactivation();
}
protected virtual void Start()
{
if (isActive) OnActivation();
else OnDeactivation();
}
}