init: version 1
This commit is contained in:
28
Assets/Prefabs/Sensor/Scripts/Activateable.cs
Normal file
28
Assets/Prefabs/Sensor/Scripts/Activateable.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user