深入理解unity5.6版本ui佈局功能

從表面上看,unity5.6的和unity5.3的佈局功能沒有太大的差別,其中VerticalLayoutGroup,只比unity5.3多兩個參數即否控制子對象的寬度或高度.但在使用的時候可以實現的效果就遠遠超過默認控制寬度和高度的佈局器強大多了.對於多層嵌套的佈局來說,實際上難度還是有比較大的,畢竟一個組件多兩個參數,多嵌套幾層就複雜了不少.不過越複雜的東西往往靈活性也就越大.

一.浮動

這是一個水平方向的佈局,內部的元素都有各自的尺寸,而這個佈局節點本身的尺寸沒有大小的控制,也就是說,如果不控制child的尺寸也不強制展開child,那麼每個child都可以有自己想有的尺寸,當有新的child創建到下面是會自動進行排列布局.

二.拉伸


如果是垂直佈局,在選擇控制child的高度和強制展開child高度時,這個佈局的尺寸會影響每個子元素的尺寸.在此情形下,再選擇寬帶控制,會有類似的效果.

三.動態增長

在更多的情況下,需要動態控制佈局整體的尺寸,這時候需要使用到ContentSizeFitter組件.以垂直方向動態增長爲例,可以勾選VerticalFit爲PreferredSize 或 MinSize.

四.同型嵌套

佈局內的佈局使用的動態增長方案和根節點的佈局相同,但可自定義子對象的尺寸控制方案.

由於直接控制的元素身上沒有圖片作爲尺寸信息,這時候需要掛LayoutElement腳本來標記尺寸信息(在沒有動態增長時,如果佈局有控制尺寸的權利,那麼設置最小值有利於不會被其他沒有最小值的元素擠壓到沒有,設置FlexibleHeight有利於空間充足時的填充)


五.異型嵌套

以上爲在一個垂直佈局中嵌套了一個水平佈局,同時需要動態增長水平和垂直,所以需要同時進行控制.

六.滑動區嵌套

由於滑動區本身有固定的尺寸,不然就沒有了滑動的意義,但有時候需要一個滑動區內部放置多個滑動區,這時候也沒有會特別的,只不過將每個滑動區對象上多加個尺寸控制的腳本防止被壓壞就好了

這裏還可以利用flexible設置各個滑動區的相對高度,當然也是沒有設置動態增長的情況下.


總結

分析了半天,也還是沒有深入理解其內部的工作原理,不過那也不是重點,重點是這種佈局方案怎麼和項目開發結合起來,減少不必要的工作


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