Unity RectTransform.API

  1. 锚点(Anchor Point):锚点是用于控制 UI 元素在屏幕上的位置和大小的点。在 Unity 中,锚点通常用于控制 UI 元素的布局和缩放。锚点的位置相对于父物体或者画布来确定,可以通过修改锚点的属性来改变 UI 元素的位置和大小。

  2. 轴心点(Pivot Point):轴心点是用于控制物体旋转和缩放的点。在 Unity 中,轴心点通常用于控制 3D 模型的旋转和缩放。轴心点的位置相对于物体的局部坐标系来确定,可以通过修改轴心点的属性来改变物体的旋转和缩放。

Anchor和Pivot与位置的关系?

使用锚点来计算位置:RectTransform 的位置属性可以由其左下角的锚点(Anchor Min)和右上角的锚点(Anchor Max)来计算。这两个锚点定义了 UI 元素相对于其父物体或者画布的位置和大小。因此,可以通过计算锚点的位置和大小,以及相对于锚点的偏移量来确定 UI 元素的位置。具体计算公式如下:

position = parent_position + 
(anchor_min + anchor_max) * 0.5f * parent_size + pivot * size + offset

其中,parent_position 表示父物体的位置,parent_size 表示父物体的大小,pivot 表示轴心点的位置,size 表示 UI 元素的大小,offset 表示相对于锚点的偏移量。

使用轴心点来计算位置:RectTransform 的位置属性也可以由其轴心点(Pivot)和相对于轴心点的偏移量来计算。轴心点定义了物体的旋转和缩放中心,因此可以通过计算轴心点的位置和相对于轴心点的偏移量来确定物体的位置。具体计算公式如下:

position = parent_position + pivot * parent_size + offset

其中,parent_position 表示父物体的位置,parent_size 表示父物体的大小,pivot 表示轴心点的位置,offset 表示相对于轴心点的偏移量。

如果一个 RectTransform 的锚点和轴心点都设置为默认值(即锚点和轴心点都为左下角),那么它的 RectTransform.position 属性就等于它的 Transform.position 属性。因此,可以将上面的公式中的 position 替换为 transform.position,得到如下的计算公式:

transform.position = parent_position + 
(anchor_min + anchor_max) * 0.5f * parent_size + pivot * size + offset

猜你喜欢

转载自blog.csdn.net/weixin_40695640/article/details/129470005