您的位置:首页 > 移动开发 > Unity3D

Unity3d 4.6版本时assetbundle.createFromFile的问题

2015-12-22 21:23 337 查看
总的来说这个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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: