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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章