牛骨文教育服务平台(让学习变的简单)
博文笔记

关于Unity3D资源打成安卓包的资源加载路径问题

创建时间:2018-01-06 投稿人: 浏览次数:890

1.问题描述(博主在论坛提了问,没人回复自己又折腾了一天,解决了。)




2.解决方法:


                   网上查了一大堆资料。有说 file后加/// 或者 !/assets/改成 !assets的,全部亲测无效

                   方法:

             

BundleURL = 
           #IF UNITY_ANDROID
           Application.streamingAssetsPath + "/";


3.原因分析:


  解决这个问题需要明确各个路径在不同平台的具体位置信息:

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)

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。