Unity 加载资源
直接把資源放在unity的目錄里是不行的 打包的時候 不會打進(jìn)去
要想打包到apk里 只有兩種選擇
1 放到 StreamingAssets 里 – Application.streamingAssetsPath
2 場景里有引用 他會自動打包進(jìn)apk里
資源放到預(yù)制體里 并且預(yù)制體沒在場景里 也不打包
先安裝
https://github.com/Unity-Technologies/AssetBundles-Browser.git
使用文檔
https://docs.unity.cn/Packages/com.unity.assetbundlebrowser@1.7/manual/index.html
創(chuàng)建兩個ab包
1包是建模
2包是預(yù)制體 里面1包里的模型
也就是說 包2 是依賴 包1 的
如果只加載包2 unity是不會自動加載包1的
所以需要自己加載依賴關(guān)系
就是這樣的
手機(jī)里沒找到相對應(yīng)的位置
apk安裝包解壓縮后 可以看到 ab包 在assets里
好 現(xiàn)在需要知道 ab包之間的依賴 咋辦
注意
這個 urlmf 是整個所有ab包的 也就是那個整個文件夾的
不是單獨(dú)某個ab包的 (單獨(dú)的加載不到)
舉個例子 你生成的是安卓的ab包
那么 你會發(fā)現(xiàn)
在生成的ab包里 有一個 Android.manifest 文件
打開后 里面其實(shí)是 ab包之間的依賴關(guān)系
那如果現(xiàn)在想發(fā)包
哪寫內(nèi)容放到StreamingAssets 呢?
StreamingAssets 的特性是只讀的
如果你把StreamingAssets 里的內(nèi)容熱更新到 persistent 那就會存在兩份數(shù)據(jù)
去YooAsset群里問了下
群主的意思是
有一個原則,你可以參考。:首包保證玩家可以進(jìn)入游戲體驗(yàn)15分鐘即可。
其余內(nèi)容,可以后續(xù)更新。
后續(xù)更新有2種方式,1:邊玩邊下,2:解鎖新地圖或新副本下載。
如果ab包在服務(wù)器怎么辦
加載就行啦~
現(xiàn)在
如果你需要把下載到的ab包 存到 persistentDataPath 里 咋辦?
如果用普通下載到的 request.downloadHandler.data 直接 FileStream 寫入是不行的
會報 NotSupportedException: Raw data access is not supported for asset bundles
需要這么寫
UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(@"http://10.0.16.118:5000/ab2"); FileInfo fileInfo = new FileInfo(Path.Combine(Application.persistentDataPath, "ab2")); var handler = new DownloadHandlerFile(fileInfo.FullName); request.downloadHandler = handler; request.disposeDownloadHandlerOnDispose = true;重點(diǎn)是 DownloadHandlerFile
可以查看文件
總結(jié)
以上是生活随笔為你收集整理的Unity 加载资源的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php调用itunes,使用cURL和P
- 下一篇: 支付宝营销策略效果分析 A/Btest