123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine.UI;
- using UnityEngine.EventSystems;
- namespace CurvedUI
- {
-
-
-
- public class CUI_draggable : MonoBehaviour, IBeginDragHandler, IEndDragHandler, IDragHandler
- {
- Vector2 savedVector;
- bool isDragged = false;
- public void OnBeginDrag(PointerEventData data)
- {
- Debug.Log("OnBeginDrag");
- Vector2 newPos = Vector2.zero;
- RaycastPosition(out newPos);
-
- savedVector = new Vector2((transform as RectTransform).localPosition.x, (transform as RectTransform).localPosition.y) - newPos;
- isDragged = true;
- }
- public void OnDrag(PointerEventData data) { }
- public void OnEndDrag(PointerEventData data)
- {
- Debug.Log("OnEndDrag");
- isDragged = false;
- }
- void LateUpdate()
- {
- if (!isDragged) return;
- Debug.Log("OnDrag");
-
- Vector2 newPos = Vector2.zero;
- RaycastPosition(out newPos);
-
- (transform as RectTransform).localPosition = newPos + savedVector;
- }
- void RaycastPosition(out Vector2 newPos)
- {
- if (CurvedUIInputModule.ControlMethod == CurvedUIInputModule.CUIControlMethod.MOUSE)
- {
-
- GetComponentInParent<CurvedUISettings>().RaycastToCanvasSpace(Camera.main.ScreenPointToRay(Input.mousePosition), out newPos);
- }
- else if (CurvedUIInputModule.ControlMethod == CurvedUIInputModule.CUIControlMethod.GAZE)
- {
-
- GetComponentInParent<CurvedUISettings>().RaycastToCanvasSpace(Camera.main.ScreenPointToRay(new Vector2(Screen.width / 2.0f, Screen.height / 2.0f)), out newPos);
- }
- else newPos = Vector2.zero;
- }
- }
- }
|