using System; using Services.Interfaces; using UnityEngine; namespace Services { public class InputService : MonoBehaviour, IInputService { public event Action OnPointerDown; public event Action OnPointerUp; private bool wasDown; private void Update() { // Mouse var isDown = Input.GetMouseButton(0); if (!wasDown && isDown) OnPointerDown?.Invoke(Input.mousePosition); if (wasDown && !isDown) OnPointerUp?.Invoke(Input.mousePosition); wasDown = isDown; // Optional: Touch (if you want both, you can merge logic more carefully) if (Input.touchCount <= 0) return; var t = Input.GetTouch(0); if (t.phase == TouchPhase.Began) OnPointerDown?.Invoke(t.position); else if (t.phase == TouchPhase.Ended || t.phase == TouchPhase.Canceled) OnPointerUp?.Invoke(t.position); } } }