Unity rectTransform理解记录

本文详细解析Unity中的Anchors属性,包括其Min和Max确定的位置,pivot的物体中心点,localPosition和anchoredPosition的坐标差异,以及OffsetMax和OffsetMin用于计算偏移。同时澄清了SizeDelta和rect的用途,帮助开发者理解和运用这些关键概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

offsets

如图,红色背景代表父物体区域,黑色代表子物体区域,此时选中的是子物体,并将锚点拉成一个矩形框便于理解。
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)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值