layoutgroups 同時是layoutcontrol和layoutelement。它先監聽各個子物件提供的大小的資訊。然後就可以決定它自身的最小,適合大小的資訊。同時它提供出了自己的最合適和最小的大小資訊。
如果這個時候,layoutgroups上同時有contentsizefitter元件。該元件監聽到了layoutgroups提供的自身的最小和最合適的大小的資訊了。根據contentsizefitter的設定,contentsizefitter元件就控制layoutgroups的大小了。(layoutcontrol控制的是自身的大小)。
layoutgroups的大小確定了,它就去反過來根據自己的可用空間去分配位置和大小給子物件了。
所以,如果我們希望按鈕的大小通他的文字框大小一樣大。我們可以這樣做
1.首先,給button的gameobject新增乙個contentsizefitter。選擇條件是preferred
2.然後,再新增乙個layoutgroup。比如horizontal layout group。
3.搞定
原理 1.button有乙個子物件text。子物件text會提供最小大小和最適合大小的資訊。
2.layoutgroup收到了子物件text的最小的和最合適的大小的資訊了,就可以確定出button自己的最小的和最合適的大小的資訊了
3.button上又有contentsizefitter元件。該元件作用就是根據物體本身提供的大小資訊來控制物體的大小的。所以它收到了button自己的最小和最合適的資訊了。然後就控制
button的大小了。這樣button大小就和text大小一樣了
效果如下
儲存到相簿
2015-12-3 17:03 上傳
Unity筆記 UGUI的自動布局功能
一些recttransform的物體 ugui元素 已經實現了ilayoutelement介面,如image。如果乙個recttransform的物體 ugui元素 的其中乙個元件實現了ilayoutelement介面,同時這個recttransform的物體又手動新增了乙個layoutelemen...
Unity筆記 UGUI的自動布局功能
一些recttransform的物體 ugui元素 已經實現了ilayoutelement介面,如image。如果乙個recttransform的物體 ugui元素 的其中乙個元件實現了ilayoutelement介面,同時這個recttransform的物體又手動新增了乙個layoutelemen...
UGUI技術之LayoutGroup布局實現詳解
繼續學習unity4.6,unity的layoutgroup分為三種,horizontal layout group 水平布局 vertical layout group 垂直布局 grid layout group 網格布局 以前ngui沒有這東西都是自己寫工具實現的。為什麼我們要布局?我舉個例子...