Anchors
Anchors属性有两个属性Min和Max组成,由它们俩决定锚点矩形的位置
个人理解:四个值分别代表锚点矩形框的四条边
Min.X控制左边,Min.Y控制下边,Max.X控制右边,Max.Y控制上边。
(最常见的是四个值相等均为0.5,四条边聚成一个点)
它们的值都在0~1之间,代表的是相对于父物体的长度比,值为0代表父物体的左下,值为1代表父物体的右上。
pivot
不同与anchor属性,pviot的X、Y是相对于物体本身的宽和高。
pviot是物体的中心点,即物体坐标对应的点,并且物体的旋转也是绕着中心点旋转的。
localPosition 和 anchoredPosition
我们都知道Position是相对于世界的坐标,localPosition是相对于父物体的坐标。而anchoredPosition我理解为相对于锚点矩形框的中心点的坐标。
注:坐标计算的终点永远是物体的中心点,而各个坐标不同只是因为坐标系不同,坐标原点不同
注意这里说的锚点矩形框是指自己的锚点,但是锚点的坐标是相对于父物体定的。
localPosition:物体本身中心点 - 父物体的中心点
anchoredPosition:物体本身中心点 - 物体本身锚点矩形框中点
(可以看到各个position都是一个向量)
注意!!!
unity Inspector中RectTransform显示的时anchoredPosition而不是localPosition!!!而仅当自身锚点坐标等于父物体中心点时,这两个值相等,使用时一定万分注意!!!
OffsetMax 和 OffsetMin
如图,红色背景代表父物体区域,黑色代表子物体区域,此时选中的是子物体,并将锚点拉成一个矩形框便于理解。
OffsetMax为UI的右上角点减去锚点矩形框的右上角点,即由锚点右上指向UI右上的向量
OffsetMin为UI左下角点减去锚点矩形框左下角点,即有锚点左下指向UI左下的向量
由这两个向量我们可以得知锚点距离UI端点的距离
SizeDelta
对于sizedelta,我以前的理解是物体的大小,现在发现是错误的。
sizedelta客观上来讲是OffsetMax这个向量减去OffsetMin这个向量。
而由上图例子可以看出,这俩相减得到的向量不是 UI左下角到右上角,也就不会代表物体的大小,而仅当锚点坐标Min和Max代表同一个点时,sizedelta代表物体的大小
sizedelta英文解释为大小增量,也就可以理解为UI相对于锚点矩形框的大小增量,而当锚点矩形框长宽都为0时,自然增量为自身大小
rect
rect重点有两个属性:
1.rectTransform.rect.position
2.rectTransform.rect.size
其中position代表中心点相对于UI左下角的位置,即UI本身中心点坐标减去UI左下角的坐标。
而size记录了UI的实际宽高(个人理解相当于width和height)