asset-live-time
Asset 导入设置
Meta
Library
StreamingAssets
波浪线
Meta
存有 Yaml 结构的 Importer 信息, 可以和 Inspecter 面板一一对应
meta 对应的 Asset 里是资产数据, fileId 索引指向 ObjectId
Library
Version1 : 会把 Asset 生成到 Library 的 metadata 文件夹里
Version2 : 资产放在 ArtifactDB, SourceDB (LMDB)里
波浪线
Unity 不会导入波浪线结尾的文件夹
AssetBundle
原理
参数
识别
策略
原理
功能
虚拟文件系统
压缩包
文件依赖关系
跨平台
索引
知识点
头立刻加载
Asset 和 Scene 要分开打
参数
ChunkBasedCompression : 改良过的 LZ4 , 压缩包体大小, 可以加密
DisableWriteTypeTree : 减小包体和内存大小
TypeTree :
识别
算打包之前的 AB 包哈希, 打包后的不一致
策略
不要打的过大或者过小
过大 : 下载慢, 内存占用多
过小 : 头文件占比大
网上下载的 1
2 m, 随包发布的 510m
Asset 的加载管理
Editor 和 Runtime 的加载策略不同, 不能使用 Editor 来检测
序列化和反序列化
解析 Prefab 场景会比 GameObject 快
尽量做 Prefab 场景
TypeTree : 兼容性之树, 方便引擎跨版本, 对应 serializedVersion, 所以一般可以关掉
同步和异步 :异步至少慢一帧,总体时间长,能不卡顿
Preload 与 Presistent
PreloadManager 有个 Option 队列
PresistentManager 负责加载文件
同步和异步的 Option id 可能会相同, 会争抢 PresistentManager , 会出现 lock 现象
Asset 的卸载
UnloadUnusedAsset : 卸载无用的 Asset, 会造成卡顿
AssetBundle.Unload(bool) : true 会把 AssetBundle 里的所有 Asset 卸载, false 不会卸载 Asset
最后更新于