一,Unity的资源数据加载
Resources
- 打包集成到.asset文件里面及引用的资源as后se一个文件里面面
- 主线程加载
- 想要动态更新资源则不考虑
AssetBundle
StreamingAssets
PersistentDataPath
- 可读可写
- 内容限制 - 无
- 清除手机缓存文件会一并清理这里的东西
- 随意弄,可作为本地目录让WWW下载、也可以自己用FileInfo乱整
Resources的序列化
当项目被构建时,所有名为Resources的文件夹中的所有Asset和Object都会合并到同一个序列化文件中。这个序列化文件中还含有元数据(Metadata)和索引(Indexing)信息,类似于AssetBundle。正如AssetBundle文档中所描述的那样,这个索引中包含了一个用于将给定Object名称转换为恰当的File GUID和Local ID的序列化查找树,同时它也用于定位在序列化文件中偏移了指定字节数的Object。
在大多数平台上,用于查找的数据结构是平衡查找树,其时间复杂度为O(nlog(n))。因此,索引加载时间随Resources文件夹内Object数量而增长的速度高于线性增长。
Resource、StreamingAsset文件夹安装后的路径(Android,iOS)
StreamingAsset
- iOS : Application.dataPath + /Raw
- Android : jar:file:// + Application.dataPath + !/assets/
Resources
二,Unity的Android和IOS上相关的目录结构
Android:
- assets 游戏内容相关的都在这里了
- lib JNI相关的东西
- META-INF Java包跟rar包的区别
- res 图标之类的
- AndroidManifest.xml Android配置文件
- classes.dex Java虚拟机runtime的东西
- resources.arsc Java编译后的二进制文件
IOS:
- level0/level1… Scene
- sharedassets0/shaedassets1/… Scene相关的东西
- Managed 脚本编译后的dll
- resources.assets Resources里面的东西
- Raw StreamingAssets里面的东西
三,常用目录对应的Android,iOS平台地址
IOS:
- Application.dataPath : Application/xxxxx/xxx.app/Data
- Application.streamingAssetsPath : Application/xxxxx/xxx.app/Data/Raw
- Application.persistentDataPath : Application/xxxxx/Documents
- Application.temporaryCachePath : Application/xxxxx/Library/Caches
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