From 5012e405ec09560fc01fcfe604ae614738de227b Mon Sep 17 00:00:00 2001 From: shenjianxing <”315615051@qq.com“> Date: Wed, 19 Feb 2025 15:05:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0UI=E6=8B=96=E6=8B=BD=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=20=E6=94=AF=E6=8C=81=E9=BC=A0=E6=A0=87=E4=B8=8EUI?= =?UTF-8?q?=E4=B8=AD=E5=BF=83=E7=82=B9=E7=9A=84=E5=81=8F=E7=A7=BB=E8=AE=A1?= =?UTF-8?q?=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Item/UIDragItem.cs | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/Assets/Scripts/Item/UIDragItem.cs b/Assets/Scripts/Item/UIDragItem.cs index 12f9da2c..777fb02e 100644 --- a/Assets/Scripts/Item/UIDragItem.cs +++ b/Assets/Scripts/Item/UIDragItem.cs @@ -7,6 +7,7 @@ public class UIDragItem : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDr private RectTransform rectTransform; // UI ͼƬ RectTransform private CanvasGroup canvasGroup; // CanvasGroup ڴקʱ͸ private Vector2 startPosition; // קʼʱijʼλ + private Vector2 offset; // UI ĵƫ void Start() { @@ -27,6 +28,13 @@ public class UIDragItem : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDr // ¼ʼλ startPosition = rectTransform.anchoredPosition; + // UI ĵƫ + Vector2 localPoint; + if (RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, eventData.position, eventData.pressEventCamera, out localPoint)) + { + offset = localPoint; + } + // ͸ȣʾק״̬ canvasGroup.alpha = 0.6f; @@ -37,17 +45,19 @@ public class UIDragItem : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDr // קе public void OnDrag(PointerEventData eventData) { - // ĻתΪ UI + // ĻתΪ UI ı Vector2 screenPoint = eventData.position; - RectTransformUtility.ScreenPointToLocalPointInRectangle( + Vector2 localPoint; + if (RectTransformUtility.ScreenPointToLocalPointInRectangle( rectTransform.parent as RectTransform, // Canvas Panel screenPoint, // Ļ eventData.pressEventCamera, // Canvas Ⱦģʽ - out Vector2 localPoint // ı - ); - - // UI ͼƬλ - rectTransform.anchoredPosition = localPoint; + out localPoint // ı + )) + { + // λúƫ UI λ + rectTransform.anchoredPosition = localPoint - offset; + } } // קʱ