什么是Pivot? Anchor如何将Pivot和Anchor结合起来调整UI以了解RectTransform中其他属性的作用? 1、为了更好地了解Pivot属性的详细信息,我在Unity中创建了两个UI控件,一个Plane控件,一个父对象,一个Image控件,最子对象
两个演示文稿的UI空间
现在,选择红色框,查看其RectTransform组件的属性,如下图所示。
红色边框的RectTransform组件
虽然有很多数据,但是这些数据是如何最终确定UI在屏幕上的位置和大小的呢? 首先,让我们来看看第一个重要属性Pivot。 这是因为我们了解了名为RectTransform的UI布局方案的第一个重点
Pivot属性
Pivot首先可以称为中心轴。 (虽然这个翻译不准确,但是为了通俗易懂,我先这么叫。 )这是x,y值的范围是从0到1的点,该点的是Anchor )在计算位置时使用。 以下用图说明Pivot点的位置
Pivot图解
设定Pivot的坐标系如上图所示。 (0,0 )表示红框物体左下角的点,(1,1 )表示红框物体右上角的点
二、关于Anchor属性的详细情况,Anchor锚点可能认识过UI的朋友,在Unity中,Anchor称为锚箱更合理。 这是因为它是由两个锚点(Min,Max )构成的矩形,当然也可以构成一个点。
锚箱
为了便于调整锚定框,Unity在“编辑”视图中标记了锚定框。 请参考下图。
锚框显示(重叠情况) )
当然,上面的图是两个锚点重叠的情况,所以看起来像一个点。 让我们利用两个锚点不重叠的情况来说明:
锚框标记
三、Pivot和Anchor的组合在知道Pivot和Anchor分别是什么之后,我们来看看Unity如何使用这两种东西来控制UI的布局
第一种情况是两个锚点重叠。 首先,让我们看看两个锚点重叠的情况。 这种情况下,是我们最常用、最容易理解的方法
情况1
将Anchor锚点定位在黑色边框的中间,然后将Pivot中心轴定位在红色边框的中间。 接下来,更改红框如何变化,黑框的大小和位置。 请参考下图。
变化图标
从上图可以看出,无论我们拖动多少黑框,改变他的大小和位置,红框Pivot点到Anchor点的距离总是不变。 也就是说,红色边框的物体参照锚点,实时调整自己的位置,使自己的Pivot点到锚点的距离始终一致。 并且,值得注意的是,在这种情况下,红色框的物体的RectTransform组件的属性是
Paste_Image.png
总结第一种情况,子代的大小不因父母的大小而变化,但具有位置根据从Pivot点到Anchor点的距离一致的原则而变化的特征
第二,在两个锚点不重叠的情况下,即,在锚定盒的情况下,两个锚点(AnchorMin和AnchorMax )不重叠的情况下,在两个点处确定一个矩形。 这个矩形是我们的锚箱,下图的绿色框是我们的锚箱区域
锚框区域
此时,如果观察红框物体的RectTransform属性,则属性分别为Left、Top、Right、Bottom
左、顶、右、底
那么,这四个属性分别代表了什么呢? 请看下图
左边和底边的图解
从上图可以看出,Unity将锚定框的左下角作为坐标系的当场(0,0 ),红框的Left和Bottom这两个数决定红框左下角的点在坐标系中的位置,原点和红框的左下角的点决定距离(即上图的绿色
Right和Top图解
同样,如上图所示,Unity将锚点框的右上角作为原点[ 0,0 ],红框的Right和Top两个数量决定红框右上角在坐标系中的位置、位置和红框的右上角
角的点确定一段距离(即上图的绿色箭头),不管黑框如何边框,这段距离都保持不变在黑框大小和位置变化的时候,Unity会保证红框的左下角到锚框的左下角距离不变,同时红框的右上角到锚框的右上角距离不变,来确定红框的相对位置和大小,看下图来感受一下变化:
变化图示
注意上图中红框左下角到黑框左下角的距离,以及红框右上角到黑框右上角的距离,他们都是不变的
三、anchoredPosition属性详解anchoredPosition根据名字的含义,我们大概可以猜出他是根据anchor锚点得出来个一个位置属性,他本身是一个点,如果在AnchorMin和AnchorMax是重合的情况下,anchoredPosition就是表示锚点到Pivot的位置,如下图所示:
anchoredPosition图解一
但是如果AnchorMin和AnchorMax不重合的时候,anchoredPosition就比较复杂了,在这种情况下,Unity会根据Pivot、AnchorMin和AnchorMax计算出一个锚点,然后在通过Pivot和锚点来得出anchoredPosition的位置,关于如何计算规则,有兴趣的朋友可以自己逆推一下
四、offsetMin和offsetMax详解offsetMin和offsetMax这两个属性比较好理解,其中offsetMin表示物体(本文中的红框)左下角相对AnchorMin的偏移,offsetMax表示物体右上角相对AnchorMax的偏移
anchor(0, 0)
anchorMin(0,0) anchorMax(1,1)
五、sizeDelta详解sizeDelta就是offsetMax - offsetMin的值,即物体左下角到右上角的变量,如下图所示:
sizeDelta图解
Unity 基础-------------------------关于Anchor锚点的理解 - wwfy - 博客园