1 Canvas
所有UI gameobject都要是canvas的子。
Canvas可以存在多个。
Canvas决定UI控件如何渲染:
screen space overlay,2d UI
screen apace camera, 3d UI 需要指定一个摄像机,这里就可以添加粒子了。
world space,对话泡或玩家名字什么的,这种模式canvas不控制rect transform组件。
在canvas下ui gameobject是按照树形顺序依次渲染的。
sorting layer可以控制渲染次序。
2 Rect Transform
这个组件取代transform出现在ui gameobject上。
anchor是这个组件里独特的属性,决定ui gameobject在父变化后如何变化。
大部分鼠标都可以来调整rect transform,pivot 是这个rect transform的中心,而且不一定在rect内部。
anchors 值是%对于父。
control points(蓝点)值是固定距离到anchors。
pivot值是一个%对于control points。
属性:
pos,是pivot到父anchor点的距离。
width和height,是大小,单位和pos一样都是像素。
anchor,4个anchor被代表为三角的gizmo。每个anchor对应rect transform的每个corner(小蓝点),这个距离是固定的。
anchor设置的值是父控件区域内的位置。
当4个anchor在一起时,当父控件缩放时子控件就会一直在anchor的位置上(百分比单位),且没有缩放。
当4个anchor分开时,当父控件缩放时子控件要保持corner和4个anchor的距离就会被缩放。
常见情况是子的corner和anchor重合,这样子控件就按照父缩放的百分比来缩放了。
还有一种是父的corner和anchor重合,这样可