UGUI——拖动UI
来源:互联网 发布:mac flash 安装不允许 编辑:程序博客网 时间:2024/05/19 03:25
拖动UI
其实我只是想要一个拖动UI的功能而已,就像是一个菜单按钮,可以放在界面的任意一个地方,到边缘自动贴边。。。就更好了不是么
http://www.cnblogs.com/coldcode/p/5521089.html
using UnityEngine;using UnityEngine.Events;using UnityEngine.EventSystems;using UnityEngine.UI;public class DragUI : MonoBehaviour{ public class DragMe : MonoBehaviour { private static Vector3 ON_DRAG_SCALE = new Vector3(1.2f, 1.2f, 1.2f); private static Vector3 NORMAL_SCALE = Vector3.one; private static Vector2 ON_DRAG_PIVOT = new Vector2(0.5f, 0.5f); private RectTransform mRectTransform; void Awake() { mRectTransform = GetComponent<RectTransform>(); } public void OnPointerDown() { transform.GetComponent<Image>().color = Color.gray; mRectTransform.pivot = ON_DRAG_PIVOT; transform.position = Input.mousePosition; this.transform.localScale = ON_DRAG_SCALE; } public void OnPointerUp() { transform.GetComponent<Image>().color = Color.white; this.transform.localScale = NORMAL_SCALE; transform.position = Input.mousePosition; } public void OnDrag() { transform.position = Input.mousePosition; } }}
首先随便建个image,然后添加一个组件,再添加OnPointerDown,OnPointerUp,OnDrag三个事件,再像button那样拖上去
后来觉着这样手动操作太麻烦了,就想着有没有像动态给button那样添加事件的代码,网上找了下还真的有,
http://www.cnblogs.com/springword/p/6039639.html
只是应该没人写目前这样的吧。那就只能“举一反三”、“照猫画虎”了233
以下这个版本就是纯代码的了,建个image,拖上脚本就可以愉快的玩耍了
using UnityEngine;using UnityEngine.Events;using UnityEngine.EventSystems;using UnityEngine.UI;public class DragUI : MonoBehaviour{ private static Vector3 ON_DRAG_SCALE = new Vector3(1.2f, 1.2f, 1.2f); private static Vector3 NORMAL_SCALE = Vector3.one; private static Vector2 ON_DRAG_PIVOT = new Vector2(0.5f, 0.5f); private RectTransform mRectTransform; void Awake() { mRectTransform = GetComponent<RectTransform>(); EventTrigger trigger = gameObject.AddComponent<EventTrigger>(); UnityAction<BaseEventData> pointerdownClick = new UnityAction<BaseEventData>(OnPointerDown); EventTrigger.Entry myclickDown = new EventTrigger.Entry(); myclickDown.eventID = EventTriggerType.PointerDown; myclickDown.callback.AddListener(pointerdownClick); trigger.triggers.Add(myclickDown); UnityAction<BaseEventData> pointerupClick = new UnityAction<BaseEventData>(OnPointerUp); EventTrigger.Entry myclickUp = new EventTrigger.Entry(); myclickUp.eventID = EventTriggerType.PointerUp; myclickUp.callback.AddListener(pointerupClick); trigger.triggers.Add(myclickUp); UnityAction<BaseEventData> pointerdragClick = new UnityAction<BaseEventData>(OnDrag); EventTrigger.Entry myclickDrag = new EventTrigger.Entry(); myclickDrag.eventID = EventTriggerType.Drag; myclickDrag.callback.AddListener(pointerdragClick); trigger.triggers.Add(myclickDrag); } public void OnPointerDown(BaseEventData data) { transform.GetComponent<Image>().color = Color.gray; mRectTransform.pivot = ON_DRAG_PIVOT; transform.position = Input.mousePosition; this.transform.localScale = ON_DRAG_SCALE; } public void OnPointerUp(BaseEventData data) { transform.GetComponent<Image>().color = Color.white; this.transform.localScale = NORMAL_SCALE; transform.position = Input.mousePosition; } public void OnDrag(BaseEventData data) { transform.position = Input.mousePosition; }}
虽然有点看不懂。。。嘛。。。会用就好了233
0 0
- UGUI——拖动UI
- Unity UGUI——UI基础,Canvas
- Unity UGUI——UI控件的鼠标快捷操作
- UGUI学习笔记3——UI组件
- UGUI学习笔记4——UI Events,Event Triggers
- Unity +HTC VIVE 虚拟现实开发— UI设计(UGUI)
- 《UI框架—基于Unity5.4UGUI(一)》
- 《UI框架—基于Unity5.4UGUI(二)》
- u3d UGUI 拖动图片
- 【UGUI】UGUI 防止UI穿透
- Unity UGUI——提供可视功能的UI组件(Text)
- Unity UGUI —— 鼠标穿透UI问题(Unity官方的解决方法)
- Unity3D自学笔记——UGUI背包系统(二)UI设计实现及数据绑定
- [转]UGUI —— 鼠标穿透UI问题(Unity官方的解决方法)
- Unity——VR分屏关于UGUI的摆放,UI如何放进vr分屏中
- UGUI实现UI精灵由小到大渐变效果——配合unity动画曲线
- Unity-UGUI——通过代码给UI元素添加对应事件
- UGUI EventSystems UI拖拽
- 可变参数列表源码分析与实现
- PHP对齐读取文件中文乱码
- 集线器、交换机、路由器以及端口带宽区别
- regex
- css3中文字“走”出来的效果
- UGUI——拖动UI
- 【php】火星坐标、百度坐标转换、地球坐标转换
- Android使用TextView实现跑马灯效果
- AttributeUsage
- Java中继承的实现
- D. Mike and distribution
- 操作系统之进程的状态和转换详解
- 题目1209:最小邮票数
- 淘宝店铺优化中影响商品排名的几个必看因素