六大组件
一、Canvas
Render Mode三种渲染方式
覆盖模式:UI始终显示在最前面
摄像机模式:3D物体可以显示在UI前面
3D模式:常用于VR和AR
二、CanvasScaler
恒定像素模式:
UI原始尺寸 = (Pixels Per Unit / Reference Pixels Per Unit)
缩放模式:
宽高匹配模式,自由选择,介于下面二者之间
拓展模式,会显示图片全部,可能有黑边
收缩模式,可能不会显示图片全部,无黑边
三、Graphic Raycaster
点击响应是否忽略反转
是否被2D或3D碰撞器阻挡
是否被某些层级的碰撞器阻挡,二者都无法在覆盖渲染模式下生效
四、Event System
First Selected 开始选择的对象
Send Navigation Events 是否开启导航(WASD控制选择)
Drag Threshold 拖曳操作的阈值
五、Standalone Input Module
懂的都懂
六、RectTransform
Pivot 轴心点
Anchors 相对父矩阵的锚点
InputField
监听分为两类
修改时监听
inputField.onValueChanged.AddListener()
修改完监听
inputField.onEndEdit.AddListener()
DropDown
dd.value 获取选项下标
dd.options[idx] 获取指定下标内容的信息
dd.options.Add(new DropDown.OptionData(msg)) 添加新的选项
事件接口
using UnityEngine.EventSystems;
IPointerEnterHandler – OnPointerEnter – 当指针进入对象时调用 (鼠标进入) IPointerExitHandler – OnPointerExit – 当指针退出对象时调用 (鼠标离开) IPointerDownHandler – OnPointerDown – 在对象上按下指针时调用 (按下) IPointerUpHandler – OnPointerUp – 松开指针时调用(在指针正在点击的游戏对象上调用)(抬起) IPointerClickHandler – OnPointerClick – 在同一对象上按下再松开指针时调用 (点击)
IBeginDragHandler – OnBeginDrag – 即将开始拖动时在拖动对象上调用 (开始拖拽) IDragHandler – OnDrag – 发生拖动时在拖动对象上调用 (拖拽中) IEndDragHandler – OnEndDrag – 拖动完成时在拖动对象上调用 (结束拖拽)
PointerEventData参数的关键内容:
pointerId: 鼠标左右中键点击鼠标的ID 通过它可以判断右键点击 position:当前指针位置(屏幕坐标系) pressPosition:按下的时候指针的位置 delta:指针移动增量 clickCount:连击次数 clickTime:点击时间
pressEventCamera:最后一个OnPointerPress按下事件关联的摄像机 enterEvetnCamera:最后一个OnPointerEnter进入事件关联的摄像机
使用EventTrigger时,函数的参数为BaseEventData,为PointerEventData的基类,使用需转化
public EventTrigger et;
//申明一个希望监听的事件对象
EventTrigger.Entry entry = new EventTrigger.Entry();
//申明 事件的类型
entry.eventID = EventTriggerType.Drag;
//监听函数关联
entry.callback.AddListener((data) =>
{
print("抬起");
});
//把申明好的 事件对象 加入到 EventTrigger当中
et.triggers.Add(entry);
et是一个List<Entry>,所以需要Add Entry类型的对象进去
RectTransformUtility坐标转换辅助类
// 鼠标拖拽UI
Vector2 nowPos;
RectTransformUtility.ScreenPointToLocalPointInRectangle(joyImg.transform.parent as RectTransform, pointerEventData.position, pointerEventData.enterEventCamera, out nowPos);
joyImg.rectTransform.localPosition = nowPos;
RectTransformUtility.ScreenPointToLocalPointInRectangle四个参数:
1.拖拽物体的父亲(转换为 RectTransform)
2.鼠标位置
3.UI摄像机
4.out Vector2
Mask遮罩
其子类只显示在不透明区域,透明区域不显示
自动布局
水平垂直布局组件:
组件名:Horizontal Layout Group 和 Vertical Layout Group
ChildAlignment: 九宫格对其方式 Control Child Size:是否控制子对象的宽高 Use Child Scale:在设置子对象大小和布局时,是否考虑子对象的缩放 Child Force Expand:是否强制子对象拓展以填充额外可用空间ChildAlignment: 九宫格对其方式 Control Child Size:是否控制子对象的宽高 Use Child Scale:在设置子对象大小和布局时,是否考虑子对象的缩放 Child Force Expand:是否强制子对象拓展以填充额外可用空间
网格布局组件:
组件名:Grid Layout Group
Cell Size:每个格子的大小 Spacing:格子间隔 Start Corner: 第一个元素所在位置(4个角) Start Axis:沿哪个轴放置元素;Horizontal水平放置满换行,Vertical竖直放置满换列 Child Alignment:格子对其方式(9宫格) Constraint:行列约束 Flexible:灵活模式,根据容器大小自动适应 Fixed Column Count:固定列数 Fixed Row Count:固定行数
内容大小适配器
组件名:Content Size Fitter
Horizontal Fit:如何控制宽度 Vertical Fit: 如何控制高度 Unconstrained:不根据布局元素伸展 Min Size:根据布局元素的最小宽高度来伸展 Preferred Size:根据布局元素的偏好宽度来伸展宽度。
宽高比适配器
组件名:Aspect Ratio Fitter
Aspect Mode:适配模式,如果调整矩形大小来实施宽高比 None:不让矩形适应宽高比 Width Controls Height:根据宽度自动调整高度 Height Controls Width:根据高度自动调整宽度 Fit In Parent:自动调整宽度、高度、位置和锚点,使矩形适应父项的矩形,同时保持宽高比,会出现“黑边” Envelope Parent:自动调整宽度、高度、位置和锚点,使矩形覆盖父项的整个区域,同时保持宽高比,会出现“裁剪” Aspect Ratio:宽高比;宽除以高的比值
CanvasGroup组件(为父对象添加,以控制整体)
Alpha:整体透明度控制 Interactable:整体启用禁用设置 Blocks Raycasts:整体射线检测设置 Ignore Parent Groups:是否忽略父级CanvasGroup的作用

评论(0)
暂无评论