Unity3d 4.6版本时assetbundle.createFromFile的问题

来源:互联网 发布:全美国际教育协会 知乎 编辑:程序博客网 时间:2024/05/29 09:25

总的来说这个createFromFile的路径简直是天坑,它与从www读取时的路径是不一样的。


尤其是android平台下

我们都知道在 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

0 0
原创粉丝点击