通过delta的值来实现拖拽功能
隐患:delta更新不即时容易不跟手,另外容易拖出屏幕
通过delta的值来实现拖拽功能
隐患:delta更新不即时容易不跟手,另外容易拖出屏幕
EventSystem中的PointerEventDate(之前遇到过)
自带的一些输入参数
例如:鼠标的左中右按钮
clickTime 点击的时间(从项目开始运行到此次点击)
click和Down的clickTime不一致的问题
click是松开开始记录
Down是按下的时候开始记录
up和click是一致的
默认键位
注意:滚轮的响应必须让鼠标悬停于物体的上方
通过project settings里面设置
必须在选中物体上
选中状态接口
前提:必须要有选中相关的组件
点击一次后,onselect执行一次,updateSelected一直执行,再次点击则执行onDselect,之后updateSelected就不会执行了
问题:如果父子都有点击相关的事件,父物体会吞噬子物体的click点击
原因:点击事件,会优先在父级中寻找
解决方法:在子物体上放置松开事件即可
点击相关的接口
一般情况下;up和Click会同时执行
IDropHandler
拖拽放下
IEndDragHandler
拖拽停止
常用:
1 将拖拽的物体放到最顶层
以上方法不建议用,应该使用项目内的层级系统去管理
注意点:OnDrag接口是必须的,不然整个拖拽不会进行
获取拖拽组件的坐标
但是,它对应的是屏幕坐标,需要换算
也可使用现有的方法
使用接口方式实现
继承相应的接口
拖拽的物体必须能够接受事件
使用挂组件的方式:
挂上参数
代码挂接eventragger
1 创建组件eventtrigger
2 初始化事件列表
3 绑定事件类型,实例化列表中的一个对象
4 选择一个eventID,用pointerClick
5 回调函数
6 unityEvent封装了一个addlistener,传入想要执行的方法
方式一:通过继承接口的方式
常用方法
方法二:使用添加组件的方式
(需要额外的配置文件来记录参数)
方法三:使用代码添加event tragger
EventSystem 事件系统是全局唯一的
不仅仅处理UI的事件
所有可视化图形的基类
自适应大小组件(根据自己的儿子设置)
选择是自适应(子物体)的最小值还是默认值
和文本配合使用(自适应文本内容)
横竖比例工具
(根据宽高进行等比缩放的工具)
1 锁定高度,设置宽度,根据比例来设定高度
2 锁高设宽
3 锁定宽度、高度,根据比例来放入父亲(不变形放入,不会截断)
4 根据宽高比,完全覆盖父亲(不变形覆盖,多余的部分截断)
会覆盖首选高度
强制最小高度,会让平分高度剔除掉最小高度之后,再进行平分
布局框内子物体可进行的设置
1 忽略布局
2 规定(自己的)最小宽度和高度
3 首选宽高,如果控件足够(但没有最小高宽的优先级)
4、灵活高宽(所有内部元素,进行加权分割高宽,百分比,必须其他的元素也设置了才能生效)
推荐使用网格布局工具
两个数值必须配合一起勾选,否则会出现高宽变为0的情况
原生的布局工具
光标颜色、宽度、闪烁频率
选中文本框的颜色