Unity —— 打包(1 - 1)
一.Unity中的路径
- Resource
- 读写方式: 只读
- 位置: 可以放在Asset下任意位置
- 方式: 压缩打包(用Resource Load的方式加载)
- StreamingAssets
- 读写方式: 只读
- 位置: Assets根目录
- 方式:原样打包, 不压缩
- 用途:原始文件, AB包(首包用到的AB包)
- persistentDataPath
- 读写方式: 可读可写
- 位置: 系统目录
- 用途:存档、下载资源
二.用途
- StreamingAssets 中存放首包内容, persistentDataPath存放热更内容
- 为什么被热更替换的资源不删?
- 因为StreamingAssets 只读, 无法删除
- persistentDataPath里面的不删,则是用于版本回退
- 如何做到读取热更?
- persistentDataPath 会进行区分
- 先去看persistentDataPath中有没有, 如果没有再去看StreamingAssets 中有没有
三. 打 AB 包的原因
- 需要热更的必须要打AB包, Why?
- 所有资源打包后都不是以原始格式存在,打包后, Unity无法直接读取原始文件(比如png图片)
- 即使下载下来到persistentDatapath, 也不会被识别
- AssetBundle 是 Unity 官方的"资源容器格式"
- AssetBundle 的本质
- 把资源编译成平台格式(跟打包流程一样), 可以读取
- 但保持为独立文件(而非合并到主包)
- 可在运行时动态加载
- 存储在可写目录(persistentDataPath)
- 可以自动加载依赖
- 依赖的材质、Shader
- 可以对纹理进行压缩
- 内存占用最优