項(xiàng)目背景
我們的APP是一個(gè)數(shù)字藏品平臺(tái),里面的很多藏品需要展示3D模型,3D模型里面可能會(huì)包含場(chǎng)景,動(dòng)畫,交互。而對(duì)應(yīng)3D場(chǎng)景來說,考慮到要同時(shí)支持iOS端,安卓端,Unity是個(gè)天然的優(yōu)秀方案。
對(duì)于Unity容器來說,需要滿足如下的功能:
1.在APP啟動(dòng)時(shí),需要滿足動(dòng)態(tài)下載最新的模型文件。
2.在點(diǎn)擊藏品查看模型時(shí),需要根據(jù)不同的參數(shù)展示不同的模型,并且在頁面消失后,自動(dòng)卸載對(duì)應(yīng)的模型。
如果要實(shí)現(xiàn)上面說的功能則是需要使用Unity的打包功能,將資源打包成AssetBundle資源包,然后把a(bǔ)b包進(jìn)行上傳到后臺(tái)服務(wù)器,然后在APP啟動(dòng)時(shí)從服務(wù)器動(dòng)態(tài)下載,然后解壓到指定的目錄中。
當(dāng)用戶點(diǎn)擊藏品進(jìn)入到Unity容器展示3D模型時(shí),則可以根據(jù)傳遞的模型名稱和ab包名,從本地的解壓目錄中加載對(duì)應(yīng)的3D模型。
AssetBundle打包流程
創(chuàng)建AB打包腳本
AB包打包是在Editer階段里。
首先要?jiǎng)?chuàng)建一個(gè)Editer目錄并把腳本放置到這個(gè)目錄下面,注意它們的層級(jí)關(guān)系:Assert/Editor/CS腳本,這個(gè)層級(jí)關(guān)系是固定的,不然會(huì)報(bào)錯(cuò)。
腳本實(shí)現(xiàn)如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
設(shè)置需要打包的資源
可以在Project選中一個(gè)資源(預(yù)制件,材質(zhì),貼圖,聲音等),然后在Inspector下面的AssetBundle設(shè)置打包成的名稱和后綴。如果名稱帶層級(jí)的如:scene/cube,那么打出來的AB包會(huì)自己添加一個(gè)scene目錄,然后在目錄下存在了cube資源包。
AB包可以存在依賴關(guān)系,比如GameObjectA和GameObjectB共同使用了Material3, 然后它們對(duì)應(yīng)的AssetBundle名稱和后綴分別為cube.ab, capsule.ab, share.ab。
雖然GameObjectA中包含了Material3資源,但是 AssetBundle在打包時(shí)如果發(fā)現(xiàn)Material3已經(jīng)被打包成了share.ab, 那么就會(huì)只打GameObjectA,并在里面設(shè)置依賴關(guān)系就可以了。
使用插件工具進(jìn)行打包
1.從gitHub上下載源碼,然后將代碼庫中的Editor目錄下的文件復(fù)制一份,放到工程Target的Assets/Editor目錄下。打開的方式是通過點(diǎn)擊Window->AssetBundle Browser進(jìn)行打開
插件工具地址:GitHub - Unity-Technologies/AssetBundles-Browser: Editor tool for viewing and debugging asset bundle contents before and after builds
2.打包時(shí),可以選擇將打出的ab包內(nèi)置到項(xiàng)目中,勾選Copy StreamingAssets ,讓打出的內(nèi)容放置在StreamingAssets目錄下,這樣可以將ab資源內(nèi)置到Unity項(xiàng)目中。
3.通過上面的操作會(huì)完成資源打包,然后將打包的產(chǎn)物壓縮上傳到后臺(tái)。
AssetsBundle資源包的使用
APP啟動(dòng)時(shí),下載AssetBundle壓縮包, 然后解壓放置在沙盒Documents/AssetsBundle目錄下,當(dāng)點(diǎn)擊APP中的按鈕進(jìn)入到Unity容器頁面時(shí),通過包名加載對(duì)應(yīng)的ab包進(jìn)行Unity頁面展示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25文章來源:http://www.zghlxwxcb.cn/news/detail-841167.html 26 27 28 29 30 31 32 33 34 35 36 |
|
注意:當(dāng)離開Unity容器時(shí)需要卸載里面加載的ab包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
到了這里,關(guān)于IOS使用Unity容器動(dòng)態(tài)加載3D模型的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!