一、Camera
1、
-Skybox:天空盒子,世界的边框
设置: Window– Lighting中设置
-Solid Color: 纯色背景
-Depth only
修改Depth较大的摄像机为DepthOnly,后面的摄像机也可以拍摄到画面
-Don’t clear
不清除buffer缓冲区
2、
每个游戏物体都有一个Layer层,Culling Mask表示需要让这个摄像机渲染哪个层的物体
3、
透视视图:默认看到的样式,用在3D场景中,物体远小近大
正交视图:不管物体离摄像机多远,看到的大小都是一样的
摄像机视野,默认60即可
4、
摄像机的拍摄范围
Near:离摄像机多近的物体可以被拍摄到
Far:离摄像机多远的物体能够被拍摄到
当一个物体离摄像机的距离在[Near, Far)之间的时候,这个物体可以被拍摄到
5、
摄像机拍摄到的画面在屏幕的位置
6、
深度
哪个摄像机的Depth越大,优先显示这个摄像机拍摄到的画面
二、Canvas
1、
Overlay:
-画布始终展现在相机的最前方,其他的物体不能越过
-画布虽然也是GameObject,但是不能进行移动,旋转,缩放。。。
Camera:使用指定相机渲染
-画布依然不能进行移动,旋转,缩放。。。
-画布将不再默认展示在相机的最前方,其他的GameObject可以穿过画布
PlaneDistance:画布到相机的距离
SortingLayer:UI层的选择
OrderInLayer:同层情况下的,前后显示的编号,编号越大越靠前
WorldSpace:
-可以对画布进行移动,旋转,缩放。。。
2、
和Depth相似: 假如一个场景中有多个Canvas,优先展示Order值大的Canvas
3、
UI视图的拉伸方式
-ConstantPixel Size
按照像素拉伸:
对于同样的一个场景,屏幕越大,看到的东西就越多
-ScaleWith Screen Size
按照屏幕位置进行缩放
一般进行屏幕适配,都会采用这种方式
设计界面的参数,参考的分辨率
在这个分辨率的基础上进行UI的绘制,其他的分辨率适当拉伸
ConstantPhysicalSize 固定物理尺寸 ScaleWithScreenSize 随屏幕变换而变换
三、Panel
在Canvas扮演一个容器的角色,可以将其他的UI元素放到Pannel中进行统一管理
四、Anchors
锚点: 作用是定位
Image的四个顶点离四个锚点的距离始终是不变的
Rect Transform中的锚点 按住Alt点击才可以快速移动UI
五、中心点
UI元素进行旋转和缩放的时候的中心点
六、布局组件
GridLayoutGroup:网格布局,可以使所有的子物体进行网格样式的布局
1、Padding
内间距,子物体距离父物体边缘的距离
在设置内间距的时候,需要根据StartCorner来进行设定。
2、StartCorner:
子物体从父物体的哪个角开始布局,默认左上角
3、CellSize:
单元格的大小,指的是父物体中每一个子物体的大小
4、Spacing:
单元格之间的间距x:水平方向间距y:垂直方向间距
5、StartAxis
从哪个轴开始布局,默认水平方向
6、ChildAligment
子物体的对齐方式
7、Constraint
Flexible:没有约束条件
FixedColumCount:固定列
FixedRowCount:固定行
HorizontalLayoutgroup(水平布局)、VerticalLayoutGroup(垂直布局):
Padding: 边距 Spacing: 间距 Child Alignment : 子物体对齐方式 ChildFoceExpend 自适应宽高
示例代码:
using UnityEngine.UI; //有关UI的组件都在这个命名空间中
OnClick: Button
gameObject.GetComponent().onClick.AddListener(() =>
{
Debug.Log("点击了");
});
onValueChanged: Toggle/Slider
gameObject.GetComponent().onValueChanged.AddListener(isOn =>
{
Debug.Log(isOn);
});
parent.FindChild("Text")
父物体获取子物体
Tranform:
GetChild获取子物体GetSiblingIndex获取该对象的同级索引。
childCount子对象个数SetSiblingIndex设置同级对象的索引。
回调函数:
//UGUI回调接口
using UnityEngine.EventSystems;
接口方法
当开始拖动一个物体的时候,执行这个方法
//一个拖拽,只会执行一次
IBeginDragHandler OnBeginDrag
在拖动的过程中调用,持续调用
IDragHandler OnDrag
拖拽完成后调用
IEndDragHandler OnEndDrag
当鼠标移动到这个物体内部的时候
IPointerEnterHandler OnPointerEnter
当鼠标移移出物体范围的时候
IPointerExitHandler OnPointerExit
鼠标点下的时候触发
IPointerDownHandler OnPointerDown
鼠标抬起的时候触发
IPointerUpHandler OnPointerUp
鼠标点击一次调用
IPointerClickHandler OnPointerClick