(Raycast Target都表示是否成为射线目标,即是否响应鼠标点击)
一、Rect Transform基本参数
Anchors
代表了这个物体的锚点相对于父物体的对齐方式(锚点在左上角时,代表物体针对父物体的左上角对齐,移动左上角的时候,子物体会跟随父物体移动)
(锚点默认以父物体的左下角为(0.0)点,锚点在父物体的几何中心时,对应的参数就为min(0.5,0.5 ) max(0.5,0.5))
Min
可以理解为做部分锚点的坐标(同理可知,max就是另一部分,不做赘述)
Pivot
Pivot表示这个物体的中心点的位置,(0,0)代表物体的左下角,(0.5,0.5)就表示物体的几何中心,(1,0.5)如图上图所示。
(其余值类推即可)
图中的灰蓝色圆圈,代表的是物体的中心位置,想要将Pivot显示出来,看下图
将红色箭头处切换到Pivot模式,就可以显示出Pivot的位置
Pivot技巧
将轴心点设置为(0,0.5)时,如果直接去改变图片的宽度,那么图片将会向右侧延申
适合用作列表等
二、锚点(Anchor)的三种情况
(一)、四个锚点合一
此时它的参数面板如左图
这个时候相当于把锚点看成坐标系的原点
- PosX、Posy、PosZ:代表pivot在这个坐标系的位置(Pivot 代表图片的中心的的位置,(0.5,0.5)就表示图片的中心就是几何中心)
- width、height:代表物体的高度和宽度
(物体大小不会受到任何缩放的影响,但是相对距离保持不变)
(二)、锚点分为上下两部分
PosX含义不变
Top、Bottom的含义如上图
物体有可能随着父物体的缩放而缩放(没有移动锚点所在的父物体侧边的时候,就不会发生缩放,例如锚点在左侧边上,移动右侧边不缩放),保持上下边框和锚点的相对间距以及锚点侧的边和锚点的间距不变
(三)、锚框
Left Top Right Bottom 就为物体四个边与锚框的相对距离
(物体会随着父物体的缩放而缩放,保持相对距离的不变)
三、蓝图模式和原始编辑模式
(这两个模式都是在Inspector面板操作时候才会起作用,直接手动修改Scene没作用)
蓝图模式
在蓝图模式下,对UI图片的缩放是不会影响UI的响应区域的
原始编辑模式
在原始编辑模式下,我们操作锚点和轴心点的时候图片也会跟随移动。
四、获取当前UI图形的宽、高
当锚点被修改的时候,使用下列方法获取宽高是最安全的
RectTransform rect =transform.GetComponent<RectTransform>();
rect.rect.width;
rect.rect.height;
五、Canvas
(一)、渲染模式
Render Mode:相机的渲染模式
Screen Space-Overlay
代表它旗下的UI是在显示界面最上层的,覆盖在其他之上(与摄像机的位置是没有关系的)
Pixel Perfect:勾选上之后,抗锯齿就失效了(控制图片像素,勾选上之后图片像素不会发生偏差)
Sort Order:渲染排序
Target Display:控制相机的显示的界面(需要和Game视图中的Display 和MainCamera中的TargetDisplay联动)
Screen Space-Camea
需要与摄像机关联,整个画布就会变成了摄像机视域的一个切面 (如下图)
WorldSpace
代表整个画布可以看成3D空间的一个 Plane一样
(二)、Canvas Scaler
UI Scale Mode
Constant Pixel Size:固定像素大小,只能通过Scale Factor调节UI元素,除此之外UI元素不会发生任何变化。
Scale With Screen Size:根据屏幕的具体大小进行缩放,需要先设置Reference Resolution (参考屏幕分辨率)一般设置为主流分辨率,然和结合实际屏幕大小进行缩放
- Match:Match值决定了用高还是宽的值来进行具体的缩放比例(为0只通过宽参考,为1只通过高参考,为0.5都参考一半)
Constant Physical Size:保持物理不变
- Physical Unit :选择物理单位
DPI:一平方英尺内的点数
Fallback Screen DPI:无法正确获取当前屏幕的DPI时,默认使用这个DPI
Default Sprite DPI :默认的DPI数量
Scale Factor
代表整个Canvas的缩放(其子物体全部缩放)
Reference Pixels Per Unity
要和图片属性中的Pixels Per Unity联动使用
Reference Pixels Per Unity指的是一个Unity单位对应的元素是多少像素
Pixels Per Unity指的是多少像素对应一个Unity单位
(三)、Graphic Raycaster
用来管理UI点击响应的组件(不勾选的话,UI组件不接受鼠标点击影响)
Ignore Reversed Grap:忽略翻转的图片(所有Rotation不为0的图片都会被忽略)
Blocking Objects:代表了会阻挡当前射线的对象类型
- None:都不阻挡
- Two D:挂在了2D碰撞体的物体会阻挡射线
- Three D:挂载了3D碰撞体的物体会阻挡射线
- ALL:挂在了3D、2D碰撞体的物体都会阻挡射线
Blocking Mask:阻挡射线的层级
(四)、Canvas Group
Alpha:修改透明度(包括子物体一起修改)
Interactable:是否能接受点击响应(如果取消勾选则接收不到点击响应)
Blocks Raycasts:
Ignore Parent Groups:是否忽略父级Canvas Group的影响
六、影响UI层级渲染的四种因素
(一)、Camera中的Depth属性
Depth的值越大显示在越前面
(二)、Canvas中的Sorting Layer和Order In Layer
Sorting Layer是渲染层级
越先显示的关系 Default>first>second
Order In Layer是在该层级中的渲染顺序
数字越大越先显示
(三)、自然层级
七、UV坐标(Raw Image中)
UV坐标指的是贴图映射到模型表面的坐标
x:代表图片向左右的偏移量(左正右负)
y:代表上下的偏移(上负下正)
w:代表显示图片的长度比例(范围是0-1) 0.1表示显示原图片长度的10%(用原图片10%的内容占据整个图片的位置)
H:代表显示图片的高度比例(范围0-1)
八、UI事件系统
UI事件系统主要有上图三部分组成(EventSystem下的Event System、Standalone Input Module和Canvas下的Graphic Raycaster)
Gracphic Raycaster是只会和基于Gracphic类的对象发生射线碰撞(一般2D\3D的射线,是和2D、3D的Collider发生碰撞,不会和Gracphic发生碰撞)