文章目录
一些基础对应控件的Attribute的含义:
Canvas相当于Android的Panel,所有的控件都需要放置在Panel上才能使用。
Attribute | 含义 |
---|---|
Instance ID | 物体的全局唯一标识ID, 由Asset产生的meta文件标识的GUID和在引擎内部的Local id共同计算,使用GetInstanceID()方法获取物体的ID |
Local Identifier In File | Local ID |
Layer | 图层的层级 |
Sort Order | 显示的层级,越低越被覆盖 |
组件介绍
Canvas
Attribute | 含义 |
---|---|
Pixel Perfect | 勾选启用抗锯齿,保持像素 |
Target Display | 对应的目标显示集 |
Render Mode
Overlay
在Overlay模式下,Canvas图层会直接覆盖在显示界面的最上层
Camera
Canvas将始终与绑定的摄像机关联,成为摄像机设定距离下的切面
World Space
Canvas将成为一个随意操作的物体。Canvas的Rect Transform属性将变为可修改。
Canvas Scaler
Attribute | 含义 |
---|---|
Scale Factor | 对Canvas内部所有物体的宽高进行缩放,Scale Factor=2则整体增大四倍,但是size属性是不变的 |
Reference Pixels Per Unit
在Unity中,Unity像素单位和实际像素单位不是完全等同的。
在图像资源的设置中的Pixel Per Unit属性下,代表了每个Unity的单元格所代表的像素数量。
如果我们将图片用于Canvas,Canvas也有一个对应的Reference Pixels Per Unit单元,代表了应用的资源在Canvas中每单元格代表的像素数量。
例如一张128*128px的图片,Pixel Per Unit=100,所占单元格=1.28*1.28,如果Reference Pixels Per Unit=100,那么1.28*1.28格对应像素就是128*128,如果修改Reference Pixels Per Unit=10,那么对应像素就是12.8*12.8。
UI Scale Mode
在Canvas Scaler 选列表下有三种模式
- Constant Pixel Size,该模式下Canvas保持像素尺寸,画布上的物体固定像素大小,不随屏幕改变自适应。
- Scale with Screen Size,物体随屏幕分辨率自适应缩放。
- Constant Physical Size,保持物理大小,和第一种类似,一般适用于保持DPI适应
Graphic Raycaster
这个组件建立在射线检测的机制之上,在Canvas中,触发事件往往是通过射线检测来判定的。与Collider碰撞体和RegidBody刚体的射线检测不同,上者的射线检测对应了Events中的Physics Raycaster,也就是直接作用在物体之上的物理射线,当物理射线检测到物体则会给物体发送一个消息。
而根据官方文档,Graphic Raycaster的特性是对Graphic图像进行的射线检测,可以设置为背向无效,同时可以被它正向前方的物体所遮挡。
Attribute | 含义 |
---|---|
Ignore Reverse Graphics | 是否忽略翻转图像,对于翻转的物体(包括了X翻转和Y翻转180度,本质上是将物体的反面朝向屏幕)将不应用射线检测 |
Blocking Object | 可进行射线遮挡的物体(一般用Canvas外的物体进行遮挡),类型包括:None(不遮挡),two D(2D物体),Three D(3D物体),ALL(所有物体),正向图像前的遮挡物体将影响Canvas中物体的射线检测 |
Blocking Mask | 遮挡蒙版,勾选中的层级代表可以遮挡,只有选中Layer中的物体才能进行遮挡 |
Blocking Object
对于Blocking Object还需要额外说明,除了上述的性质,包括物体,碰撞体,刚体等物理物体(需要区分3D或者2D)也能遮挡射线
Canvas Grope
这个组件不是一个默认组件,但是一个很重要的组件。Canvas Grope可以统一管理整个Canvas下的所有组件。
Attribute | 含义 |
---|---|
Alpha | 透明度 |
Interactable | 能否进行互动 |
Blocks Raycasts | 是否接受Graphic Raycasts |
Ignore Parent Groups | 是否忽视父级Groups的影响 |