Unity 加载资源
直接把資源放在unity的目錄里是不行的 打包的時候 不會打進去
要想打包到apk里 只有兩種選擇
1 放到 StreamingAssets 里 – Application.streamingAssetsPath
2 場景里有引用 他會自動打包進apk里
資源放到預制體里 并且預制體沒在場景里 也不打包
先安裝
https://github.com/Unity-Technologies/AssetBundles-Browser.git
使用文檔
https://docs.unity.cn/Packages/com.unity.assetbundlebrowser@1.7/manual/index.html
創建兩個ab包
1包是建模
2包是預制體 里面1包里的模型
也就是說 包2 是依賴 包1 的
如果只加載包2 unity是不會自動加載包1的
所以需要自己加載依賴關系
就是這樣的
手機里沒找到相對應的位置
apk安裝包解壓縮后 可以看到 ab包 在assets里
好 現在需要知道 ab包之間的依賴 咋辦
注意
這個 urlmf 是整個所有ab包的 也就是那個整個文件夾的
不是單獨某個ab包的 (單獨的加載不到)
舉個例子 你生成的是安卓的ab包
那么 你會發現
在生成的ab包里 有一個 Android.manifest 文件
打開后 里面其實是 ab包之間的依賴關系
那如果現在想發包
哪寫內容放到StreamingAssets 呢?
StreamingAssets 的特性是只讀的
如果你把StreamingAssets 里的內容熱更新到 persistent 那就會存在兩份數據
去YooAsset群里問了下
群主的意思是
有一個原則,你可以參考。:首包保證玩家可以進入游戲體驗15分鐘即可。
其余內容,可以后續更新。
后續更新有2種方式,1:邊玩邊下,2:解鎖新地圖或新副本下載。
如果ab包在服務器怎么辦
加載就行啦~
現在
如果你需要把下載到的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;重點是 DownloadHandlerFile
可以查看文件
總結
以上是生活随笔為你收集整理的Unity 加载资源的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php调用itunes,使用cURL和P
- 下一篇: 支付宝营销策略效果分析 A/Btest