Unity 的 UGUI Pivot学习

Pivot很常见,也很简单,有时候简单到让人忽视,再简单的东西也希望自己能够熟知,而不是一知半解。

Pivot就是中心点的意思,在UGUI里面是长这样的:

一个UI控件是一个矩形,我们先建立UI的座标模型:以左下角为原点(0,0),按照顺时针的方向设矩形的四个角座标为(x1y1, x1y2, x2y2, x2y1)。

现在我门可以计算Pivot.x = 0.5时,x的值。x = (x2 - x1 ) * Pivot.x = (x2 - x1) * 0.5。看公式可以看出,Pivot.x = 0.5时,x轴方向的中心点在UI的x1和x2中间,同理,Pivot.y = 0.5时,y轴方向的中心点在UI的y1和y2中间。大部分情况下,UI的Pivot.x和Pivot.y的取值都是0.5,此时中心点就是UI的中心。

接下来让我们考虑Pivot.x为其他值的情况(Pivot.y同理)

当Pivot.x = 0时,中心点的位置 x = (x2 - x1) * 0 ,此时Pivot.x的位置在x1处;

当Pivot.x = 1时,中心点的位置 x = (x2 - x1) * 1 ,此时Pivot.x的位置在x2处;

当Pivot.x = 2时,中心点的位置 x = (x2 - x1) * 2 ,此时Pivot.x的位置在 2 * x2处;

当Pivot.x = -1时,中心点的位置 x = (x2 - x1) * -1 ,此时Pivot.x的位置在 -x2处;

到这里,Pivot的分析基本就完成了。

下面有一些情况稍微提一下:

当改变UI的Pivot时,你会看到Position的座标也会发生变化:

                  

这是为什么呢?这是因为Pos的位置是通过移动UI的Pivot来确定的,Pivot改变后中心点发生了变化, Unity为了使改变Pivot后的UI,在场景里面的位置保持不变,便自动修改了UI的Pos的值。如果你把Pos值修改为未改变Pivot前的Pos值,你会发现Pivot在场景中的位置和改变前相同,但是UI位置变了。

另外Pivot和UI的拉伸,移动,旋转关系密切,改变Pivot会对这些UI变换产生影响,后面有时间继续写。

 

 

发布了53 篇原创文章 · 获赞 12 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章