Unity 在 Android 平台下 使用 AssetBundle.CreatFromFile() 加載 AssetBundle,返回空值null。


我只想說路徑問題簡直喪心病狂!

我們都知道在 Android 平台下使用 WWW 的加載方式十分的順暢。一個路徑類似於這樣:jar:file:///data/app/[APP的名字].apk!/assets/AssetBundles/ABFile/

在使用 Win 或 Mac 測試的時候,我們也容易知道使用 CreateFromFile 使用的路徑跟 WWW 相比只要把前面的 file:// 去掉。


在 Android 平台上就不是這么簡單了,雖然說復雜不到哪里去,但是對於不熟悉的人來說,夠喝一壺了。下面我要揭曉秘密了!

Application.streamingAssetsPath // 獲得一個類似這樣的路徑 jar:file:///data/app/[APP的名字].apk!/assets
Application.dataPath // 獲得一個類似這樣的路徑 /data/app/[APP的名字].apk


CreateFromFile 接受的路徑是像這樣 /data/app/[APP的名字].apk!assets/AssetBundles/ABFile。看起來似乎可以用 Application.streamingAssetsPath + relativeName去掉前面的 jar:file:// 獲得。但是!請你仔細觀察!
我們來對比下這種方式得到的路徑跟使用 dataPath得到的路徑。

Application.streamingAssetsPath.Replace("jar:file://","")+"/AssetBundles/ABFile";
Application.dataPath + "!assets/AssetBundles/ABFile";
/data/app/[APP的名字].apk!/assets/AssetBundles/ABFile    // not work
/data/app/[APP的名字].apk!assets/AssetBundles/ABFile     // work

我屮艸芔茻!看到沒有,嘆號后面少了一個斜杠!坑爹啊! 不知道是 Unity 坑還是 Android 坑,反正是坑得哥哥都快變成姐姐了!蛋碎啊有木有!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM