UGUI技術之LayoutGroup布局實現詳解

2021-07-13 05:18:50 字數 1350 閱讀 1406

繼續學習unity4.6,unity的layoutgroup分為三種, horizontal layout group(水平布局)vertical layout group(垂直布局)grid layout group (網格布局) 以前ngui沒有這東西都是自己寫工具實現的。為什麼我們要布局?我舉個例子,布局的時候可以兩個cell 和三個cell都居中顯示。如下圖所示。。

尤其在獎勵視窗,因為獲取道具的數量是不固定的,所以需要根據不同數量的道具來居中對齊。如下圖所示,padding 就是偏移,因為我的cell 是 95x95,為了居中所以這裡設定成 right = -95 top = -95。

spacing 表示 cell之間的距離。

child alignment 表示對齊方式。

child force expand 表示 自適應 寬 和高

在看看cell,注意layout group節點下面的所有cell節點都是不能修改rect transform的。因為cell可能下面會放很多,這樣我們會用個空的gameobject來當父節點。但是這個gameobject的width 和 height 是最小單位,那麼layout group就不知道怎麼來算居中了。如下圖所示 這個時候就輪到layoutelement登場了, 用它來設定乙個cell的最大或者最小寬度。

如果執行時例項化後的gameobject 直接放在 layout group下面即可。layout group會自動計算布局,真的是非常方便。

for

(inti=

0;i<10;

i++)

還有個問題就是隱藏,比如把其中的乙個cell setactive = false ,為了不計算隱藏的cell 所以要先把 ingonrelaytout = true 再 setactivity = false  這一切都可以在**裡面來設定。

**這樣即可。

gameobject

.getcomponent

<

layoutelement

>()

.ignorelayout

=true;

gameobject

.setactive

(false);

UGUI 原始碼之 IndexedSet

list 和 dictionary,是最常用的資料結構之二。先來看看list 和 dictionary的優缺點 1.遍歷,list可以 for 可以 foreach 還可以.foreach 而 dictionary只能foreach unity某些版本使用foreach會由於拆裝箱產生gc list...

UGUI效能優化之Canvas

前言,覺得好的同學別忘了給個好評哦,另外,如果有什麼疑問的,歡迎隨時提問 自從unity問世以來,ui一直都存在比較大的問題,自帶的ongui不能所見即所得,製作過程比較麻煩。於是出現了很多第三方的優秀的ui外掛程式,比如很多專案裡面用到的ngui,或者後來出的fairygui。unity官方在4....

UGUI學習筆記之InputField

一 inputfield控制項介紹 文字輸入框 二 inputfield控制項結構 2.inputfield input caret 輸入文字的游標 執行後才會自動生成 3.placeholder 顯示提示文字 4.text 顯示輸入文字 三 inputfield元件屬性 前面部分同button 不...