Unity 资源导入器工作原理:从检测到产物的完整链路 开场引入想象这样的场景:你把一张 8K 的 PBR 材质贴图拖进 Unity 的 Project 窗口,进度条立刻开始转。几秒后 Console 告诉你文件已被处理成压缩格式并生成了 mipmap 链,Inspector 面板上多出一堆 TextureImporter 参数——Compression、Max Size、Wrap Mode 等等。这个看似简单的"一拖一放"背后,是 Unity 资源导入器(AssetImporter)在完成一条完整的数据流水线。很多开发者对 Importer 的理解停留在"它给资源生成一个 .meta 文件"。但实际上,Importer 决定了你的资源在不同平台下是 200 KB 还是 20 MB,决定了加载时是阻塞主线程还是异步流送,决定了 shader 变体在打包时会不会爆炸。一个重度游戏项目,仅纹理和模型的导入优化就能省下 GB 级的包体。本文沿着"硬盘原始文件 → AssetDatabase 调度 → Importer 处理 → Library/Artifacts 缓存 → 运行时内存"的完整路径,把 Importer 的工作原理拆开讲清楚,最后给出可以直接落地的工程实践清单。一、Asset Database:Importer 调度的总指挥1.1 变更检测与增量导入Unity 资源导入并非"拖进来就立刻处理",而是由 AssetDatabase 统一调度。当 Unity 启动、文件被修改、或者开发者主动调用AssetDatabase.Refresh()时,AssetDatabase 会扫描Assets/目录,对比每个文件的修改时间与内容哈希,生成一份"脏列表(dirty