using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace MeowmentDebugTool
{
///
/// 可拖动的悬浮按钮
/// 点击打开调试工具,可以在屏幕上自由拖动
///
public class DraggableFloatingButton : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
[Header("设置")]
[Tooltip("是否限制在屏幕范围内")]
public bool clampToScreen = true;
[Tooltip("与屏幕边缘的最小距离")]
public float edgePadding = 20f;
[Header("自动吸附")]
[Tooltip("是否自动吸附到屏幕边缘")]
public bool snapToEdge = true;
[Tooltip("吸附动画时间")]
public float snapDuration = 0.3f;
private RectTransform rectTransform;
private Canvas canvas;
private Vector2 dragOffset;
private bool isDragging = false;
private Vector2 targetPosition;
private bool isSnapping = false;
// 用于区分点击和拖动
private Vector2 dragStartPosition;
private const float clickThreshold = 5f; // 小于这个距离算点击
private bool wasDragging = false; // 标记刚才是否拖动过
private void Awake()
{
rectTransform = GetComponent();
canvas = GetComponentInParent