日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于 Unity 中的 NGUI 插件,通用的 UI 如何设计

發(fā)布時間:2024/8/26 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于 Unity 中的 NGUI 插件,通用的 UI 如何设计 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

以我的項(xiàng)目經(jīng)歷來說,要保證通用性必須分清需求是框架需要還是項(xiàng)目需要。舉一個例子,所有的項(xiàng)目都需要一個彈窗提示的接口,但是不同項(xiàng)目彈窗都不一樣,當(dāng)時做的時候我沒有想好怎么分離,那就放到項(xiàng)目類庫里,保證框架不受影響,以后再重構(gòu)。

下面根據(jù)題主提的要點(diǎn)針對性說下方案(以NGUI框架為基礎(chǔ),UGUI還在研究中):

UI 和場景中物體的交互如何控制

目前遇到的場景中交互有幾種:

類似血條的顯示:通過攝像機(jī)轉(zhuǎn)換坐標(biāo)的方法轉(zhuǎn)換為UI坐標(biāo)來同步血條位置。

對點(diǎn)擊等操作的響應(yīng):屬于控制管理器,不應(yīng)該放在UI框架中,但是UI框架需要提供UI尺寸和實(shí)際尺寸的比例便于規(guī)劃控制范圍。

3D物體的展示:可以直接放在界面中也可以使用renderTexture,前者更方便。

切換場景時對 UI 如何處理

雖然unity提供了Scene這個功能給我們使用,但是我個人的最終目標(biāo)是將整個游戲運(yùn)行在一個場景中,但這并不影響UI框架。一個場景一個單例的管理器(M2),還有一個跨場景的管理器(M1),M2負(fù)責(zé)具體的創(chuàng)建和關(guān)閉,M1負(fù)責(zé)對象池之類的功能。如果多場景,場景切換時M2實(shí)例和界面就都銷毀了,不需要特別處理;如果單場景,創(chuàng)建和銷毀都已經(jīng)由M2實(shí)例負(fù)責(zé)了。

UI 如何分組/分類以方便管理

個人看來這一條本身提的比較模糊,因?yàn)榭梢岳斫鉃橘Y源的管理也可以理解為結(jié)構(gòu)的管理,下面分別回答。

資源管理:小的項(xiàng)目可以使用公用圖集(+Texture)的方式,大的項(xiàng)目UI資源太多,只靠公用圖集肯定會造成內(nèi)存的嚴(yán)重占用,所以建議是公用圖集+功能圖集(+Texture)。功能圖集就是一個功能模塊的公用圖集,在功能操作完畢時就可以釋放掉了。這里涉及到的細(xì)節(jié)太多,就不展開了。

結(jié)構(gòu)管理:我的思路是分為三類:1控件,就是button、label、sprite等等。(像buttonGroup就是button的組合,使用代碼創(chuàng)建和控制)2彈窗/界面/列表項(xiàng),這三者都由控件組成。3共用布局,這一類是為了節(jié)省時間而分的,比方說卡牌游戲中反復(fù)出現(xiàn)的卡牌布局其實(shí)就是共用布局,每個界面重復(fù)制作顯然浪費(fèi),是否有這類關(guān)鍵在于UE結(jié)構(gòu)是否明確和復(fù)雜布局的復(fù)用程度。

如何統(tǒng)一管理 UI 的深度

這條可以引申為Z坐標(biāo)(如果UI中有3D物體或者UI本身就是3D的)、renderQueue、界面的調(diào)用順序等全局屬性的管理。這些內(nèi)容都應(yīng)該在界面制作的時候就記錄在界面信息上,在創(chuàng)建、聚/失焦、關(guān)閉界面時記錄在管理器中。

UI本身的深度其實(shí)很好管理,麻煩在UI上可能會有3D物體和特效,不同的shader可能會導(dǎo)致不同的問題。

打開、關(guān)閉時的動效,以及被遮擋時的動效

動效本身其實(shí)更應(yīng)該當(dāng)作項(xiàng)目需求而不是框架需求。首先建議有單獨(dú)的動效管理器,其次如果域名出售規(guī)劃中對動效規(guī)劃不明確,可以放在具體實(shí)現(xiàn)中。

如果項(xiàng)目中沒有靠譜的UE設(shè)計,框架做得越多其實(shí)越累。引用程序界的質(zhì)能公式:error=(more code)^{2}

3DUI相比2D多了很多問題,要提前想清楚,比方說在界面上有3D物體的情況下(不用renderTexture)打開彈窗時,Z坐標(biāo)和縮放的管理。

總結(jié)

以上是生活随笔為你收集整理的基于 Unity 中的 NGUI 插件,通用的 UI 如何设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。