using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; namespace Beyond { public class WaveTouchController : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IDragHandler { private Vector2 m_startPoint; private Vector2 m_currentPoint; private Vector2 m_normalizedPos; private RectTransform m_rect; public UnityEvent OnChange; void UpdatePos() { } public void OnDrag(PointerEventData eventData) { RectTransformUtility.ScreenPointToLocalPointInRectangle(m_rect, eventData.position, eventData.pressEventCamera, out m_currentPoint); m_normalizedPos = 2f * m_currentPoint / m_rect.rect.size; Debug.Log($"Current pos: {m_normalizedPos}"); OnChange.Invoke(m_normalizedPos); } public void OnPointerDown(PointerEventData eventData) { RectTransformUtility.ScreenPointToLocalPointInRectangle(m_rect, eventData.position, eventData.pressEventCamera, out m_currentPoint); m_startPoint = m_currentPoint; m_normalizedPos = 2f * m_currentPoint / m_rect.rect.size; Debug.Log($"Current pos: {m_normalizedPos}"); OnChange.Invoke(m_normalizedPos); } public void OnPointerUp(PointerEventData eventData) { RectTransformUtility.ScreenPointToLocalPointInRectangle(m_rect, eventData.position, eventData.pressEventCamera, out m_currentPoint); } // Start is called before the first frame update void Start() { m_rect = GetComponent(); } // Update is called once per frame void Update() { } } }