42 lines
1.1 KiB
C#
42 lines
1.1 KiB
C#
|
|
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;
|
|||
|
|
}
|
|||
|
|
}
|