有关Unity3D中UGUI的知识,做下笔记

 

一、Anchors(锚点) :

首先,我们要明白,一个UI物体的锚点是相对于父物体来说的,如果没有父物体,那就是相对于整个Canvas画布来说的。

我们用官网一组图片可以很形象的描述锚点的作用:

                               

unity 锚点设置后不改变位置 unity锚点不见了_Pivot

                                                                锚点全在中间的情况

                               

unity 锚点设置后不改变位置 unity锚点不见了_锚点_02

                                                             锚点全在右下角的情况

                              

unity 锚点设置后不改变位置 unity锚点不见了_Unity_03

                                                                   锚点在两个角的情况

                             

unity 锚点设置后不改变位置 unity锚点不见了_Unity_04

                                                                     锚点分开的情况

锚点的四个点分别为:

MinX: 相对于父物体左边框的比例(就是 距左边框的距离/左边框到右边框的总长度)

MaxX: 相对于父物体右边框的比例

MinY: 相对于父物体下边框的比例

MaxY: 相对于父物体上边框的比例

这四个值决定了四个锚点的位置,而四个锚点的位置决定了四个顶点的位置。

总结:由此可以看到,不管什么情况,button的四个顶点到相应锚点的相对位置是不变的,并且,当四个锚点在一起和

不在一起时RectTransform可调整的属性会有变化,当4个锚点都在一起的时候,RectTransform会显示Pos X,Pos Y,Width,Height四个属性可供修改,其中PosX,PosY就是物体的中心点(轴点)相对于 锚点的位置。

例如:如果四个锚点都在父物体的中心,且物体的中心点(轴点)就在物体的几何中心点,这时如果物体在父物体的中间,,那么PosX,PosY就都是0。

unity 锚点设置后不改变位置 unity锚点不见了_锚点_05


 

二、Pivot(UI的中心点,称为轴点):

UI元素的旋转和缩放是围绕pivot进行的。轴点是Rect的实际中心点,是属于Rect自身的,和Rect尺寸中心点不同。尺寸中心点是以宽,高取1/2得到,即几何中心点。而轴点是可以任意指定的,如果将Rect旋转,可以看到Rect是围绕轴点旋转,而不是几何中心点。Pivot的范围也是[0,1]的比例值。Pivot默认值为(0.5, 0.5),即物体的几何中心。

unity 锚点设置后不改变位置 unity锚点不见了_Pivot_06

轴点为(0.5,0.5)时,

unity 锚点设置后不改变位置 unity锚点不见了_Anchors_07

轴点为(1,1)时