關於ugui布局 含scrollview

2021-07-22 07:12:10 字數 1420 閱讀 4831

做的聊天系統,ui布局簡直弄的頭疼。特意記錄下來。

scrollview:1. 首先給panel加上scroll rect元件,然後加上mask 2d元件(和mask區別是mask需要image元件,然後eventtriiger也需要image元件)

// 注意: panel的大小決定顯示的大小。scroll rect的選項決定可以水平還是垂直拖拽,可決定到底後是否可以繼續拖拽然後恢復(movement type :elastic)

2. 在panel下面新增content空物體,新增自適應元件,content size fitter(必須加,否則後續轉殖的物體無法進行拖拽顯示)。新增自動排序元件gird或者水平垂直layout。(若物體數量是可定的,則不需要) // 子物體均在content下,同時想要控制子物體大小注意家element layout。

3.content的大小決定能拖拽的滑動效果,物品itemguo小則無法拖拽,panel決定能顯示的區域(加了遮罩)。

4. 自動布局不是必須的,在有限的物品item下,可以改變item任意位置,仍然可以做到滑動,保證content size fitter。

更多參考:  

首先是縱向布局,一般的遊戲基本上都是scroll rect的縱向布局,開始用的gird元件,發現很多時候不好用。

然後換成vertical layout group,可以很好的調整,然後這時候子物體被限制死,需要調整子物體就加element layout。

補充: 父物體加上vertical layout group,content size fitter(vertical fit 設定成為preferred size). 注意 ,子物體開始的時候就必須在父物體當中,他不不會動態的縮小父物體或者改變父物體的位置!!一定要子物體完全被父物體包容。

關於element layout

1.若一些或者非動態擴充套件的東西,若不想受排序影響,就需要加element layout然後將排序ignore。擴充套件的例如text ,加上element layout,將最大的寬度進行限制即可(一定要被父物體大小包容!!!)。

2. 整體父物體受content size fitter影響時,注意包容所有的子物體,否則在content中會造成排序重疊或者上下間距不等。 若多個子物體受排序影響,就每個子物體加個element layout進行微調(除錯的item需要新增content size fitte,放入有content size fitte的容器再刪除)。

注意:1. 開始的時候布局一定要正確!!子物體的錨點特別是非擴充套件的元件的錨點和位置一定開始都包容在父物體中並且設定好!!!

2.注意最上層父物體包含content size fitter即可,但是其他父物體必須也有vertical layout group才會享受一樣的動態增長(最底層的元件造成增長)。

最後子物體的動態增長方向,取決於父物體的中心點在**,在上面則向下擴充套件,在下面則向上擴充套件,和子物體的旋轉點在哪無關!

UGUI自動布局 LayoutGroups

layoutgroups 同時是layoutcontrol和layoutelement。它先監聽各個子物件提供的大小的資訊。然後就可以決定它自身的最小,適合大小的資訊。同時它提供出了自己的最合適和最小的大小資訊。如果這個時候,layoutgroups上同時有contentsizefitter元件。該...

UGUI技術之LayoutGroup布局實現詳解

繼續學習unity4.6,unity的layoutgroup分為三種,horizontal layout group 水平布局 vertical layout group 垂直布局 grid layout group 網格布局 以前ngui沒有這東西都是自己寫工具實現的。為什麼我們要布局?我舉個例子...

Unity筆記 UGUI的自動布局功能

一些recttransform的物體 ugui元素 已經實現了ilayoutelement介面,如image。如果乙個recttransform的物體 ugui元素 的其中乙個元件實現了ilayoutelement介面,同時這個recttransform的物體又手動新增了乙個layoutelemen...