From e19bcaa7ced9d17f7dae4672ae0c41710e178a60 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期四, 09 十月 2025 09:53:15 +0800
Subject: [PATCH] 218 子 【付费内容】首充 / 【付费内容】首充-客户端

---
 Main/Component/UI/Common/DragItem.cs |   62 ++++++++++++++++++------------
 1 files changed, 37 insertions(+), 25 deletions(-)

diff --git a/Main/Component/UI/Common/DragItem.cs b/Main/Component/UI/Common/DragItem.cs
index 7cfee77..7ba9652 100644
--- a/Main/Component/UI/Common/DragItem.cs
+++ b/Main/Component/UI/Common/DragItem.cs
@@ -13,6 +13,8 @@
 /// </summary>
 public class DragItem:MonoBehaviour,ICanvasRaycastFilter,IBeginDragHandler,IDragHandler,IEndDragHandler 
 {
+    [SerializeField] public Canvas parentCanvas;
+    [SerializeField] public Canvas canvas;
     // 鎷栨嫿鍖哄煙闄愬埗
     [SerializeField]
     RectTransform m_Area;
@@ -26,12 +28,13 @@
         private set { m_RaycastTarget = value; }
     }
 
-    [SerializeField] public int pos;
+    [NonSerialized] public int pos;
 
-    private Vector3 orgScale;
+    private DragContainer lastTransform;
 
     // 褰撳墠瀵硅薄鐨凴ectTransform缁勪欢
-    public RectTransform rectTransform { get { return this.transform as RectTransform; } }
+    RectTransform rectTransform { get { return this.transform as RectTransform; } }
+
 
     /// <summary>
     /// 寮�濮嬫嫋鎷芥椂璋冪敤
@@ -40,8 +43,10 @@
     {
         raycastTarget = false;
         this.transform.position = UIUtility.ClampWorldPosition(area, eventData);
-        orgScale = rectTransform.localScale;
-        rectTransform.localScale = orgScale * 1.2f;
+        rectTransform.localScale = Vector3.one * 1.2f;
+
+        canvas.sortingLayerID =  parentCanvas.sortingLayerID;
+        canvas.sortingOrder = parentCanvas.sortingOrder + pos + 10;
     }
 
     /// <summary>
@@ -51,21 +56,23 @@
         this.transform.position = UIUtility.ClampWorldPosition(area,eventData);
         
         // 妫�娴嬫槸鍚﹁繘鍏ョ洰鏍囧尯鍩�
-        if (eventData.pointerEnter != null) {
-            var target = eventData.pointerEnter.transform;
-            if (target != null) {
-                // 杩涘叆鐩爣鍖哄煙锛屾斁澶� 1.2 鍊�
-                target.localScale = Vector3.one * 1.2f;
+        if (eventData.pointerEnter != null)
+        {
+            if (lastTransform != null && lastTransform != eventData.pointerEnter.GetComponent<DragContainer>())
+            { 
+                lastTransform.mainTransform.localScale = Vector3.one;
+                lastTransform = null;
             }
-        } else {
-            // 绂诲紑鐩爣鍖哄煙锛屾仮澶嶅ぇ灏�
-            if (eventData.pointerPress != null) {
-                var target = eventData.pointerPress.transform;
-                if (target != null) {
-                    target.localScale = Vector3.one;
-                }
+            var target = eventData.pointerEnter.GetComponent<DragContainer>();
+            // 杈撳嚭缁勪欢璺緞
+            if (target != null)
+            {
+                lastTransform = target;
+                // 杩涘叆鐩爣鍖哄煙锛屾斁澶� 1.2 鍊�
+                lastTransform.mainTransform.localScale = Vector3.one * 1.2f;
             }
         }
+        rectTransform.localScale = Vector3.one * 1.2f;
     }
 
     /// <summary>
@@ -73,10 +80,17 @@
     /// </summary>
     public Action<int, int> onEndDragEvent;
 
-    public void OnEndDrag(PointerEventData eventData) {
+    public void OnEndDrag(PointerEventData eventData)
+    {
         raycastTarget = true;
-        rectTransform.localScale = orgScale;
+        rectTransform.localScale = Vector3.one;
         
+        if (lastTransform != null)
+        {
+            lastTransform.mainTransform.localScale = Vector3.one;
+            lastTransform = null;
+        }
+
         if (eventData.pointerEnter == null)
         {
             onEndDragEvent?.Invoke(pos, -1);
@@ -84,16 +98,14 @@
         }
 
         var container = eventData.pointerEnter.GetComponent<DragContainer>();
-        if(container == null) {
+        if (container == null)
+        {
             onEndDragEvent?.Invoke(pos, -1);
             return;
         }
-
-        // var contain = UIUtility.RectTransformContain(eventData.pointerEnter.transform as RectTransform,rectTransform);
-        // if(contain) {
-        //     rectTransform.position = eventData.pointerEnter.transform.position;
-        // }
         onEndDragEvent?.Invoke(pos, container.pos);
+        canvas.sortingLayerID =  parentCanvas.sortingLayerID;
+        canvas.sortingOrder = parentCanvas.sortingOrder + pos + 1;
     }
 
     /// <summary>

--
Gitblit v1.8.0