unity 使用NGUI 顯示角色血條和名字

2021-06-27 19:31:34 字數 1003 閱讀 2440

先說一下好處和原理:

如果用unity自帶的gui處理,需要在ongui() 中每個迴圈呼叫gui.begingroup、  gui.drawtexture、textfilter.drawoutline 之類的**,有很高的記憶體開銷。

ngui 不只是僅僅用於拼接ui,這裡主要是去掉ngui上的uicamera,使用maincamera控制顯示。此時的ngui需要繫結在角色身上,如圖:

角色裡面建立乙個object,設定y軸座標,通常角色頭頂高一點。這樣就繫結完畢。

在lateupdate中呼叫               

//mworldposition 繫結角色的那個object

//mcachedtrans nugi的object

vector3 screenpos = camera.main.worldtoscreenpoint(mworldposition);

vector3 uiworldpos = muicamera.screentoworldpoint(screenpos);

mcachedtrans.position = uiworldpos;

mcachedtrans.rotation = muicamera.transform.rotation;

最後看效果:

unity移動端記憶體優化 NGUI

做3d移動端 記憶體一直是人們頭疼的問題,載入的資源釋放了,還有其他的需要釋放,比如 ngui 釋放,其實主要是 ngui 的texture和sprite釋放,如果你指令碼程式沒用到 ngui 組建的引用的話,切換場景後第一時間呼叫 resources.unloadunusedassets 就會釋放...

unity移動端記憶體優化 NGUI

做3d移動端 記憶體一直是人們頭疼的問題,載入的資源釋放了,還有其他的需要釋放,比如 ngui 釋放,其實主要是 ngui 的texture和sprite釋放,如果你指令碼程式沒用到 ngui 組建的引用的話,切換場景後第一時間呼叫 resources.unloadunusedassets 就會釋放...

Unity複習 四 UGUI與NGUI

一 ngui與ugui常用元件比較 元件樣式如下 二 細節對比 ngui根據depth的大小,ugui根據在層次面板上的先後順序。如上圖中文字與的渲染順序,ngui中sprite的depth為0,label為1,label後渲染,顯示在sprite的上方 ugui層次面板中,text在image的上...