From ca577b96e0022e0ddaa8e106e147e53d8166df1c Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期五, 07 十一月 2025 11:40:36 +0800
Subject: [PATCH] 164 天子的考验-客户端
---
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