unity銷毀層級物體及 NGUI 深度理解總結

2021-06-19 06:11:25 字數 1399 閱讀 7655

1.想找到層級面板中某個物體,並銷毀,利用下面的**:

gameobject  obj = gameobject.find("所要找的名字"); destroy(obj);

如果要找的物體比較多,可以將找到的物體放在乙個陣列中,對於物體的名字如果是按照順序或者一定規律命名的話,也可以通過for迴圈統一找並賦值,例如:物體的名字依次為house1,house2,……house10的話,定義乙個string  str;和乙個gameobject型別的陣列a存找到的物體,迴圈**如下:

for(int i=1;i<11,i++)

str = 「house」;

str = str +i;

a[i] = gameobject.find("str");

destroy(a[i]);//銷毀找到的物體

還可以通過 gameobject.findwithtag("標籤名")來尋找,提前是給這些物體要新增tag

2.ngui層級關係與非層級關係

ngui層級關係就是建立時預設的那個層級關係,包括uiroot , camera , anchor,panel,非ngui層級關係是camera,然後在裡面建立控制項,但是camera要掛上uicamera 和uipanel指令碼。

//以下部分網上蒐集

3.關於ngui深度、層次總結(做過很多ngui介面後理解會更深刻)

1、同乙個panel下,同乙個atlas的不同sprite的顯示只受depth的控制,這是最經常用的方式。此時不論精靈的z軸如何變化,depth高的一定在前面。(相同atlas其實是共用同乙個z軸深度)

2、不同panel下,同乙個atlas的不同sprite不受depth的控制,而受z軸控制。此時只需稍微調節下其中乙個精靈的z軸就可以,比如0.1,就可以控制sprite的顯示

3、不同panel下,不同atlas的精靈的穿插,受z軸的控制。

4、同乙個panel下,不同atlas的sprite,受z軸控制,depth不起作用。

專案中做到複雜一些的介面,經常會用到多個圖集,以技能介面為例,專案中常用的放到共用圖集中, 

這是乙個圖集,技能介面本身獨有的元素,比如跟技能職業相關的背景,算作第二個圖集,還有一些技能圖示, 

圖示單獨歸類到乙個圖集中,再乙個就是字型的圖集。基本乙個介面如此分法,最多需要4個圖集。ngui的圖集之間的 

處理,預設是靠調整控制項的z值來區分的,但是這裡他可以調整同乙個圖集每個乙個控制項的z值,其實不是很好。經常會出現圖層相互遮擋的情況,尤其對於控制項比較多的介面,一段時間回過來再修改介面的時候,整個要崩潰。 

我的做法是。在uipanel中,為每乙個material新增乙個layer的變數,當同一圖層靠depth來決定前後關係,不同圖層靠 

layer來決定前後關係,在繪製uidrawcall的時候,根據layer對跟節點做一定偏移。這樣就能從z值中解放出來。 

unity銷毀層級物體及 NGUI 深度理解總結

1.想找到層級面板中某個物體,並銷毀,利用下面的 gameobject obj gameobject.find 所要找的名字 destroy obj 如果要找的物體比較多,可以將找到的物體放在乙個陣列中,對於物體的名字如果是按照順序或者一定規律命名的話,也可以通過for迴圈統一找並賦值,例如 物體的...

Unity中UI和遊戲物體之間的層級渲染

之前使用乙個uicamera和乙個maincamera做場景,希望給場景加上乙個background,但是將background和操作的ui都綁在uicamera,將遊戲物體正常地用maincamera渲染時,出現了遊戲物體遮擋住button或者background直接遮擋住了整個場景的情況。在不清...

Unity介紹空物體及元件

介紹空物體 1.建立空物體就是在hierarchy面板建立createempty gameobject空物體 2.每個物體預設就有transform元件也可以表示物體 3.可以附加各種其他元件,附加不同元件就有不同功能 4.不同物體有不同功能,就是它掛載了不同的元件 介紹元件 transform元件...