系统按键接口为
IScrollhandler,滚轮输入,鼠标必须悬停在UI上才能触发
ISubmitHandler,提交按钮,空格和回车时响应
ICancelHandler,取消,esc键响应
IMoveHandler,移动,wasd 方向键响应
系统按键接口为
IScrollhandler,滚轮输入,鼠标必须悬停在UI上才能触发
ISubmitHandler,提交按钮,空格和回车时响应
ICancelHandler,取消,esc键响应
IMoveHandler,移动,wasd 方向键响应
ISelectHandler,
IDeselectHandler,鼠标点击非ui区域会调用
IUpdateSelectedHandler,鼠标长按调用
接口IPointerEnterHandler,IPointerExitHandler是一组
接口IInitializePotentialDragHandler为准备开始拖动
IBeginDragHandler为开始拖动
IDragHandle正在拖动
IEndDragHandler 拖拽结束
UI时间都是通过图像射线检测,所以raycast target必须为勾选状态
代码手动添加响应事件
EventTrigger trigger=gameObject.AddComponent<EventTrigger>();
trigger.triggers=new List<EventTrigger.Event>();
EventTrigger.Entry entry=new EventTrigger.Entry();
entry.eventId=EventTriggerType.PointerClick();
entry.callback=new EventTrigger.TriggerEvent();
entry.callback.AddListener((data)=>ChangeColor());
void Start()
{
UnityAction<BaseEventData> click = new UnityAction<BaseEventData> (MyClick);
EventTrigger.Entry myclick = new EventTrigger.Entry ();
myclick.eventID = EventTriggerType.PointerClick;
myclick.callback.AddListener (click);
EventTrigger trigger = gameObject.AddComponent<EventTrigger> ();
trigger.triggers.Add (myclick);
}
public void MyClick(BaseEventData data)
{
Debug.Log ("点击");
}
自适应内容大小改变的组件,可用于文本框等
横竖比例工具
可以用来限制图片的显示比例
aspect ratio为宽高的比值
layout element只能用于处在自动布局下的子物体上,有需要特别排列的UI
control child size与child force expand必须成对存在,否则会出现错误
rawimage中UV坐标代表图片映射在游戏物体上的坐标,一般用于制作帧动画。
使用UI一般是用默认大小,所以调用图片之后应在image组件中点击set native size还原默认大小
image type中sliced模式为切图模式,用于经过切割的图片,例如九宫格切割
image组件中取消fill center的话,会将九宫格的中间方块抹消,其余方块不受影响,一般用于制作屏幕方框
tiled模式则是平铺,经过切割的图片使用此模式的话一般用于边缘平铺。
九宫格切割:点击图片,在sprite mod中选择single模式,点击sprite editor就可以进行切割了。切割过的图片中四个顶点的方块不会被拉伸影响,其他方块则反之
如果导入的图片为图集,需要手动进行细微切割,则可以改用multiple模式,点击sprite editor进行切割(也包含九宫格功能)
从外部导入的UI图片资源需要先将texture type修改为sprite(2d and UI)格式。
color类是以0-1浮点数来控制RGBA参数的类,而color32则是以0-255来控制,两者之间有很大区别,可以摁F12进入源码中查看详细参数规则
raycast target的勾选表示是否能被射线检测到,装饰用UI一般取消勾选,以防阻挡需要使用检测的UI或者屏幕点击
Select事件
1 OnSelect
2 DeSelect
3 OnUpdateSelect
必须和Selectable组件配合使用
子物体只实现Click
父物体实现Click和Down
当父物体和子物体重叠的时候
在点击父物体时,事件的触发没有问题
但当点击子物体时,子物体的Click和父物体的Click事件都不会被触发,父物体的其他事件不受影响
解决方法:子物体也实现Down
IDropHandler依赖于IDragHandler
所有的拖拽接口都依赖于OnDrag
也就是说如果想实现拖拽功能的话,必须要有OnDrag
selectable就是一切交互组件的基础
其他的就是可以绑定事件
Unity的遮罩组件Mask:
父物体时遮罩图片
子物体是要遮罩的图片
将Mask组件挂在父物体上
RawImage的应用
1 序列帧动画的播放
2 将3D物体映射在UI上
将RT分别赋值给RawImage和拍摄3D物体的摄像机,不想在UI上显示背景的化,该摄像机渲染方式选择Solid Color