【Unity】在UI上实现拖拽功能(IBeginDragHandler, IDragHandler,IEndDragHandler)

1.效果展示

请添加图片描述

2.接口API

IBeginDragHandler、IDragHandler 和 IEndDragHandler 是 Unity 引擎中的三个接口,用于处理 UI 元素的拖动事件。

  • IBeginDragHandler:开始拖动时调用
  • IDragHandler:正在拖动时调用
  • IEndDragHandler:拖动结束时调用
    在这里插入图片描述在脚本中加入如下三个方法
    在这里插入图片描述

3.PointerEventData属性

  • button:触发此事件的按钮
  • clickCount:计算按钮连击次数,间隔时间很短
  • clickTime:上次发送点击事件的时间。这个时间不是每一次点击都是从新开始计算,会根据上一次的时间继续累加
  • delta:自上次更新以来的鼠标坐标增量变化
  • dragging:判断当前按钮是否在拖动
  • enterEventCamera:与最后一个OnPointerEnter事件关联的相机,这个主要用于多相机混合的时候判断当前按钮的事件是由哪个相机触发的
  • hovered:悬停堆栈中的对象列表。
  • lastPress:最后一次按下事件的物体,这个会记录上一次点击到的按钮信息
  • pointerCurrentRaycast:包含当前响应射线检测事件的信息
  • pointerDrag:当前触发 OnDrag事件的物体,设置为空的时候不再触发OnDrag和OnEndDrag
  • pointerEnter:当前触发OnPointerEnter的对象,一般鼠标移动到ui上的时候会触发这个事件,对应的是OnPointerExit,鼠标移出的时候
  • pointerId:鼠标点击时的id(-1,-2,-3分别对应鼠标左键,右键和中键,手机端触摸时也有相应的id)
  • pointerPress:鼠标按下时的游戏物体
  • pointerPressRaycast:指针按下时响应射线检测的ui
  • position:当前指针的位置,返回一个vector2向量。这是一个屏幕坐标,左下角为原点(0,0),右上角为(屏幕宽,屏幕高)
  • pressEventCamera:与最后一个OnPointerPress事件关联的相机。
  • pressPosition:按下的时候的指针位置
  • rawPointerPress:当前执行事件中的物体,不论是否处理按下事件,都会保存指针按下时的游戏物体.

4.脚本逻辑

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

public 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值