public bool dragging ;

描述

确定用户在拖动鼠标还是在触控板上滑动。

如果用户在移动鼠标或触控板指针,则 PointerEventData.dragging 返回 /true/。如果鼠标或触控板指针未移动,则返回 /false/。dragging 利用鼠标或触控板手指的移动。OnDrag 包含 dragging 事件。

以下示例使用 IDragHandlerIDragHandlerIEndDragHandler 接口。这些接口分别提供 EventTrigger.OnBeginDragEventTrigger.OnDragEventTrigger.OnEndDrag 事件处理程序。当指针开始移动时,IDragHandler.OnDrag 进行查询,仅当用户拖动指针时才会发送消息。

using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

// PointerEventDrag.dragging example.

// PointerEventData.dragging is set to true when the object is moving. // Otherwise dragging is set to false. // // Create a 2D Project and add a Canvas and an Image as a child. Position the Image in the center // of the Canvas. Resize the Image to approximately a quarter of the height and width. Create a // Resources folder and add a sprite. Set the sprite to the Image component. Then add this script // to the Image. Then press the Play button. The Image should be clickable and moved with the // mouse or trackpad.

public class Example : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler { private Vector3 position; private float timeCount = 0.0f;

public void OnBeginDrag(PointerEventData eventData) { position = transform.position; Debug.Log("OnBeginDrag: " + position); }

// Drag the selected item. public void OnDrag(PointerEventData data) { if (data.dragging) { // Object is being dragged. timeCount += Time.deltaTime; if (timeCount > 0.25f) { Debug.Log("Dragging:" + data.position); timeCount = 0.0f; } } transform.position = data.position; }

public void OnEndDrag(PointerEventData eventData) { transform.position = position; Debug.Log("OnEndDrag: " + position); } }