Unity —— 打包(1 - 1)

4 阅读1分钟

一.Unity中的路径

  1. Resource
  • 读写方式: 只读
  • 位置: 可以放在Asset下任意位置
  • 方式: 压缩打包(用Resource Load的方式加载)
  1. StreamingAssets
  • 读写方式: 只读
  • 位置: Assets根目录
  • 方式:原样打包, 不压缩
  • 用途:原始文件, AB包(首包用到的AB包)
  1. persistentDataPath
  • 读写方式: 可读可写
  • 位置: 系统目录
  • 用途:存档、下载资源

二.用途

  1. StreamingAssets 中存放首包内容, persistentDataPath存放热更内容
  2. 为什么被热更替换的资源不删?
  • 因为StreamingAssets 只读, 无法删除
  • persistentDataPath里面的不删,则是用于版本回退
  1. 如何做到读取热更?
  • persistentDataPath 会进行区分
  • 先去看persistentDataPath中有没有, 如果没有再去看StreamingAssets 中有没有

三. 打 AB 包的原因

  1. 需要热更的必须要打AB包, Why?
  • 所有资源打包后都不是以原始格式存在,打包后, Unity无法直接读取原始文件(比如png图片)
    • 即使下载下来到persistentDatapath, 也不会被识别
    • AssetBundle 是 Unity 官方的"资源容器格式"
  • AssetBundle 的本质
    • 把资源编译成平台格式(跟打包流程一样), 可以读取
    • 但保持为独立文件(而非合并到主包)
    • 可在运行时动态加载
    • 存储在可写目录(persistentDataPath)
  • 可以自动加载依赖
    • 依赖的材质、Shader
    • 可以对纹理进行压缩
    • 内存占用最优