NGUI的UIPanel的Depth改良 二級排序

2021-09-10 06:49:49 字數 1271 閱讀 4583

用ngui做介面的時候,當介面很多很多的時候,我們需要一套管理ui層的系統,所以介面預設例項化完之後,需要設定一下uipanel的depth,規則是什麼呢?首先,可以先做乙個歸類,假設我們把所有的介面分成4個大層:baseui,effectui,windowui,topui。

假設我們使用depth,可以定義好4個大層的depth範圍,比如:

baseui:0~10000

effectui:10001~20000

windowui:20001~30000

topui:30001~40000

假設我們示例化完乙個介面預設,它是在baseui層的,那麼我們可能設定它的depth為8,然後又有乙個baseui層的介面要顯示,如果我們用累加的形式,那麼它的depth是9,這樣不斷下去,那麼有可能baseui的介面的depth會跨入到effectui層中。

如果有二級排序就可以解決了,比如在depth的基礎上,有乙個layerofui作為二級排序。

接下來,我們就來改造uipanel,首先,uipanel類中新增乙個mlayerofui變數和乙個layerofui屬性

[hideininspector][serializefield] int mlayerofui = 0;

public int layerofui

set }}

然後再改一下uipanel類的comparefunc介面

static public int compairefunc(uipanel a, uipanel b)

return 0;

}

好了,接下來,為了方便在inspector中設定,我們再改下uipanelinspector

在shoulddrawpropertises函式中新增layerofui的編輯ui繪製

protector override bool shoulddrawproperties()

}guilayout.endhorizontal();

...}

效果如下

這樣,我們就可以設計depth了

baseui:0

effectui:10001

windowui:20001

topui:30001

他們的layerofui可以從0一直往上加,而不會出現跨層的問題

適配de的原理

一定要全部寫的是5得尺寸,我的適配的縮放係數都是除以5的寬 和高最後得到的係數,所以犯迷糊的時候一定記得是按照5的尺寸通過cgrectmake的方法得到其他螢幕的尺寸,相當於同比例的增大。螢幕適配的傑作 還得複習cell的headerview的寫法,自定義的函式,明天可以看看談談其他地方定義的ttd...

ngui中scrollview的使用

uiscrollview製作滑動列表,可橫向,豎直展示一些列表在固定可視範圍內 uiscrollview只是乙個可滑動的ui元件 如果需要製作複雜的可視區域ui需要配合使用uipanel與uigrid 這樣更方便ui的展示 a.建立乙個2d ui root,在ngui選單上建立乙個scroll vi...

UGUI跟NGUI的異同

雖然ugui出了已經由一段時間了,但現在的大部分公司還是用ngui居多,我現在在複習ngui,因為之前都是用ugui dotween來開發,最近複習ngui起來有點懵,不過兩者還是有相同的地方的,這篇博文主要講一下我目前遇到過的異同之處,也是留給以後的自己用於記憶吧,哈哈。這篇博文可能會不定時修改,...