文/vian

1.本文實(shí)例操作在Unity5.x中資源打ab包。

2.其他的不多介紹,新建工程創(chuàng)建好工程目錄,這里我建立一個(gè)uia的模塊,還有其對(duì)應(yīng)用到的美術(shù)資源目錄。aUI是一個(gè)ui預(yù)制,其引用了美術(shù)uia目錄中的資源。

090725bun5c5cubbcb3ecs.png
3.實(shí)際開(kāi)發(fā)中,我們也可以根據(jù)功能模塊來(lái)按上面這樣分目錄結(jié)構(gòu),比較清晰。進(jìn)入正題現(xiàn)在開(kāi)始對(duì)uia的預(yù)制進(jìn)行打ab包,打包代碼如下:

090726bf0xo4xufhhogyjf.png
首先打包之后根目錄也會(huì)生成一個(gè)同目錄名的ab包,其中的manifest作用就是供開(kāi)發(fā)人員查看ab中的依賴(lài)關(guān)系等信息,加載根目錄這個(gè)ab,可以得到一個(gè)AssetBundleManifest 對(duì)象如下圖,然后就可以通過(guò)這個(gè)對(duì)象得到ab直接的依賴(lài)關(guān)系。

090726xy0hahx1ueeu09xh.png
5.查看ab包大小,后面會(huì)有比較。

090726l77jc9f9zacovhu4.png
6.加載ab包,并實(shí)例化aUI的預(yù)制,顯示出來(lái)如下圖:

090729hdomvyi9oxbuxqox.png
8.實(shí)際開(kāi)發(fā)中,可能我們的aui模塊里的aUI預(yù)制、bui模塊里的bUI預(yù)制等等都引用了相同一份資源,這樣我們提出一個(gè)公共目錄,用來(lái)放這些被多個(gè)引用的資源,打包的時(shí)候會(huì)先把這個(gè)公共目錄打包,新版Unity會(huì)自動(dòng)處理好依賴(lài)關(guān)系,接下來(lái)過(guò)程里我們會(huì)說(shuō)明。具體目錄結(jié)構(gòu)如下圖:

090729ww0g4hhsvrel0wzl.png
9.修改aUI預(yù)制,使其引用一個(gè)公共目錄common里的按鈕資源,如下圖:

090730v12q2ssubd1l111b.png
以上其實(shí)我們就已經(jīng)完成了依賴(lài)包的自動(dòng)處理過(guò)程了,為了能更清晰的展現(xiàn),這里將根目錄的manifest貼出如下圖:

090730sngll0yd12m0amdg.png
以上內(nèi)容表示我們上面成功輸出有兩個(gè)ab包,common_res和ui_aui,其中依賴(lài)關(guān)系清晰可見(jiàn),ui_aui依賴(lài)了公共包c(diǎn)ommon_res,因?yàn)槲覀僡UI預(yù)制引用了公共包的資源。這里就是Unity新版打ab包的好處,你不用在麻煩的用Push/Pop維持一個(gè)依賴(lài)的堆棧。

11.上面都已經(jīng)準(zhǔn)備好了,那么繼續(xù)通過(guò)第6步驟的加載過(guò)程,我們可以看到效果如下圖:

090730d0lrpcm90mylah0m.jpg
我們先獲得ui/ui_aui的依賴(lài),然后加載其依賴(lài)包c(diǎn)ommon_res,在加載包ui_aui,在實(shí)例化預(yù)制體即上圖顯示效果。整個(gè)流程日志輸出如下:

090730j3m2ktwzfj2tbbgb.jpg
以上動(dòng)動(dòng)手,帶你深入U(xiǎn)nity實(shí)際開(kāi)發(fā)中,資源目錄結(jié)構(gòu)的整理,資源的打ab包,ab包依賴(lài)關(guān)系的處理,ab包加載使用,歡迎閱讀指正。

via: 游戲扶持by騰訊游戲?qū)W院

銳亞教育

銳亞教育,游戲開(kāi)發(fā)論壇|游戲制作人|游戲策劃|游戲開(kāi)發(fā)|獨(dú)立游戲|游戲產(chǎn)業(yè)|游戲研發(fā)|游戲運(yùn)營(yíng)| unity|unity3d|unity3d官網(wǎng)|unity3d 教程|金融帝國(guó)3|8k8k8k|mcafee8.5i|游戲蠻牛|蠻牛 unity|蠻牛