Unity的自動佈局

       Unity的自動佈局系統(Auto Layout)基於佈局元素(Layout Element)和佈局控制器(Layout Controller)來實現,佈局元素的大小由佈局控制器決定。

 

Layout Element

       一個佈局元素定義了以下的屬性:

  • (Minimum)最小寬/高
  • (Preferred)首選寬/高
  • (Flexible)可選寬/高

       佈局元素的大小遵循以下的原則進行計算:

  • 首先,給佈局元素分配最小寬/高
  • 接着,如果空間足夠,給佈局元素分配首選寬/高
  • 最後,如果有額外空間,給佈局元素分配可選寬/高

       每個具有Rect Transform的Game Object都可以看作一個佈局元素,其最小、首選、可選寬高都默認設置爲0,添加Layout Element組件可以改變這些屬性的值。

 

Layout Controllelr

       一個佈局控制器會同時控制其自身的佈局元素(佈局控制器的Game Object)及其子佈局元素。有兩種常用的佈局控制器,分別是Content Size Fitter和Aspect Ratio Fitter。

 

Layout Group

       佈局組也是一種佈局控制器,常用的佈局組(Layout Group)有Horizontal Layout Group、Vertical Layout Group和Grid Layout Group,佈局組只控制子佈局元素的大小以及排列方式,並且可以嵌套使用。佈局組不會設置自身的佈局元素的大小,它的大小由其它的佈局控制器或者手動進行設置。

       這裏以垂直佈局組(Vertical Layout Group)爲例,介紹一下佈局組的一些屬性和用法。

  • Child Alignment:如果子佈局元素的大小沒有填充全部的空間,子佈局元素會根據所選的屬性進行對其
  • Child Controls Size:子佈局元素的大小是否由佈局組控制
  • Child Force Expand:是否強制子佈局元素填充多餘的空間

       垂直佈局組的遵循以下的原則進行子佈局元素的大小計算和放置:

  • 佈局組的最小/首選高度是所有子佈局元素的高度以及間隔之和
  • 如果垂直佈局組的高度小於或等於其最小高度,則其子佈局元素則設置爲各自的最小高度
  • 如果垂直佈局組的高度越接近其首選高度,則其子佈局元素同樣越接近各自的首選高度
  • 如果垂直佈局組的高度大於其首選高度,則額外的空間會按比例分配給每個子佈局元素,分配的比例基於每個子佈局元素的可選高度的相對值進行計算

 

 

參考文獻

Unity Auto Layout的使用(三)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章