1.问题描述(博主在论坛提了问,没人回复自己又折腾了一天,解决了。)
2.解决方法:
网上查了一大堆资料。有说 file后加/// 或者 !/assets/改成 !assets的,全部亲测无效
方法:
BundleURL =
#IF UNITY_ANDROID
Application.streamingAssetsPath + "/";
解决这个问题需要明确各个路径在不同平台的具体位置信息:
Android平台
Application.dataPath : /data/app/xxx.xxx.xxx.apk
Application.streamingAssetsPath : jar:file:///data/app/xxx.xxx.xxx.apk/!/assets
Application.persistentDataPath : /data/data/xxx.xxx.xxx/files
Application.temporaryCachePath : /data/data/xxx.xxx.xxx/cache
IOS平台
Application.dataPath : Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data
Application.streamingAssetsPath : Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data/Raw
Application.persistentDataPath : Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Documents
Application.temporaryCachePath : Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Library/Caches
Windows Web Player
Application.dataPath : file:///D:/MyGame/WebPlayer (即导包后保存的文件夹,html文件所在文件夹)
Application.streamingAssetsPath :
Application.persistentDataPath :
Application.temporaryCachePath :
4.补充:
修改成2中路径后你会发现是扔无法再unity里面正常运行的(即使是build setting里已经切换成了安卓平台),如果你想要在unity内安卓平台下正常调试,还是需要将路径修改成pc模式下的。即:
#if UNITY_ANDROID
"file://" + Application.dataPath + "/StreamingAssets/"
5.博主的日常吐槽:
经过两天的爬坑自己终于解决了这个bug...几乎搜遍了网上的blog都没看到适合自己的解决方案。看到很多博客都给出安卓平台下的路径是 “jar:file://” + Applicaiton.dataPath +“!/assets/”; 于是自己也照着写,调试的时间坚定的觉得这个路径没有错。直到最后走投无路了才过来怀疑这个路径。查了一下关于路径的文档就发现了问题 。果然是不能封建迷信啊...(吐血.jpg)