using UnityEngine; namespace Interactable { public abstract class InteractableBase : MonoBehaviour, IInteractable { protected bool hasBeenInteracted = false; public void Interact() { if (hasBeenInteracted) return; OnInteract(); hasBeenInteracted = true; } public void ResetInteraction() { if (!hasBeenInteracted) return; OnResetInteraction(); hasBeenInteracted = false; } protected abstract void OnInteract(); protected abstract void OnResetInteraction(); } }