失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > UGUI的Drag实现鼠标拖拽

UGUI的Drag实现鼠标拖拽

时间:2020-07-25 02:46:04

相关推荐

UGUI的Drag实现鼠标拖拽

我们可以让类继承某些事件接口,然后实现接口的方法,就可以实现相应的功能比较常用的有这么几个接口接口都是以大写I为前缀的

IBeginDragHandler // 开始拖拽处理器,开始拖拽的一瞬间触发IDragHandler // 拖拽中事件处理器,拖拽过程中持续触发IEndDragHandler //结束拖拽事件处理器

接口使用步骤

首先需要引入UnityEngine.EventSystems命名空间在当前类继承的父类后方,用逗号分隔,写需要使用到接口名鼠标放到接口名上,右键——实现接口——显示实现接口或者实现接口编写相应事件的方法体,先简单输出测试
面板设置
选定某个物体,然后Component——Event——EventTrigger组件然后Add New Event Type 选择想要的事件类型然后在脚本里面写相应的方法,最后将脚本拖拽到function中

通过拖拽事件改变图片位置

RectTransformUtility.ScreenPointToWorldPointInRectangle(//将屏幕坐标点转换为世界坐标点m_RectTransform, // 游戏物体的rectTransformeventData.position, // 当前鼠标坐标位置点eventData.enterEventCamera, // 事件摄像机out pos) // 最终计算得到的世界坐标位置

我们只需要写在拖拽中事件方法内,将最终的pos位置值持续赋值给当前游戏物体的position即可面板中上的函数获取的是BaseEventData 指针事件数据,需要强制转换

注意事项

有一点需要注意,他会将图片的中心点位置和鼠标的中心点位置重合,如果想实现实时拖拽偏移量 = 拖拽物品的位置 — 鼠标的位置然后在鼠标拖拽过程中, 持续执行拖拽物品的位置 = 鼠标位置 + 偏移量. 对其进行赋值即可

如果觉得《UGUI的Drag实现鼠标拖拽》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。