42 lines
1.1 KiB
C#
Raw Normal View History

2025-09-08 14:51:28 +08:00
using UnityEngine;
public class MouseDragDistance : MonoBehaviour
{
private Vector3 startPosition;
private Vector3 endPosition;
private bool isDragging = false;
public float distance = 100;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD><CFB0><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
private void OnMouseDown()
{
isDragging = true;
// <20><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EAB0B4>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ļλ<C4BB><CEBB>
startPosition = Input.mousePosition;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private void OnMouseDrag()
{
if (isDragging)
{
// ʵʱ<CAB5><CAB1><EFBFBD>µ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
endPosition = Input.mousePosition;
float dragDistance = Vector3.Distance(startPosition, endPosition);
if (TryGetComponent(out PC_DragEvent dragEvent))
{
if(dragDistance > distance)
{
dragEvent.stay?.Invoke(gameObject);
}
}
//Debug.Log("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>ק<EFBFBD><D7A7><EFBFBD><EFBFBD>Ϊ: " + dragDistance + " <20><><EFBFBD><EFBFBD>");
}
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
private void OnMouseUp()
{
isDragging = false;
}
}