using UnityEngine; using System; public class Interactable : MonoBehaviour, ITouchInputConsumer { public event Action Interacted; private ObjectiveStepBehaviour stepBehaviour; void Awake() { stepBehaviour = GetComponent(); } // Called by InputManager when this interactable is clicked/touched public void OnTouchPress(Vector2 worldPosition) { if (stepBehaviour != null && !stepBehaviour.IsStepUnlocked()) { DebugUIMessage.Show("Item is not unlocked yet"); Debug.Log("[Puzzles] Tried to interact with locked step: " + gameObject.name); return; } Debug.Log($"[Interactable] OnTouchPress at {worldPosition} on {gameObject.name}"); Interacted?.Invoke(); } public void OnTouchPosition(Vector2 screenPosition) { // Optionally handle drag/move here } }