用途
manage-sprite-atlas 用于在 Unity 项目中通过预构建管线(prebuild pipeline)管理 SpriteAtlas 资源。其目标场景是自动化地创建、更新、分类和交付精灵图集,覆盖主图集(master atlas)与变体图集(variant atlas)、打包设置以及平台覆盖。技能基于 Unity 的 SpriteAtlas V2 架构,要求 Unity 6000.3 或更高版本。
主要能力
- 默认通过 IPreprocessBuildWithReport 在每次构建前自动生成或更新 SpriteAtlas,无需手动菜单点击。
- 支持两种交付方式:内置数据(Built-in Data,立即加载,includeInBuild = true)与通过 Addressables 延迟绑定(Late-Binding,按需加载,includeInBuild = false)。
- 支持按文件夹结构、命名约定、资源标签、场景引用等策略对精灵进行分类并生成对应图集。
- 支持生成不同分辨率的变体图集(variant atlas)。
- 提供平台格式设置(如 TextureImporterFormat.ASTC_6x6)。
- 附带 resources/ 目录下的可运行 C# 参考实现(共 38 个文件),涵盖自定义打包器、变体、平台设置和运行时访问。
使用方式
- 第一步(必需):在生成代码前,扫描项目中是否已有本技能生成的脚本,搜索标识符 // [UNITY-SKILL:SPRITEATLAS]。若存在,则向用户呈现选项:A 更新现有脚本(推荐,路径不变但可能覆盖自定义修改),B 以新名称创建新脚本,C 中止(不做改动)。
- 第二步(必需):询问交付方式——内置数据或 Addressables。若为 Addressables,必须生成全部三个脚本:预构建脚本(生成图集并创建 Addressables 条目)、构建 Addressables 脚本(IPostprocessBuildWithReport)、运行时延迟绑定加载器(MonoBehaviour)。
- 第三步(必需):在创建图集前启用 Sprite Packer 模式(EditorSettings.spritePackerMode = SpritePackerMode.SpriteAtlasV2),并读回该值确认未被置为 Disabled。
- 第四步:在构建时,图集自动生成/更新;内置数据方式可直接使用,Addressables 方式还会构建内容包并在运行时自动加载。
- 编写代码前应先阅读 resources/ 中对应路径的参考实现,例如 authoring_vs_runtime.cs、references/common-errors.md、sprite_atlas_prebuild_generator.cs 等。
适用场景
- 常驻可见的核心 UI 精灵、教程引导精灵:推荐内置数据方式。
- 关卡专属精灵(100+ 关卡)、DLC 或季节性内容、多语言本地化 UI 精灵、角色皮肤或外观道具:推荐 Addressables 延迟绑定方式。
- 需要随构建自动打包、更新图集的项目。
限制与注意事项
- 仅允许从项目的 Assets 文件夹添加精灵,禁止从 Unity 内置资源、Packages 或外部位置添加。
- 禁止在编辑器代码中脚本化使用 SpriteAtlas(V2 中仅运行时使用),例外是已加载运行时图集上的 SpriteAtlas.GetPackables() 实例方法。
- 不要直接编辑 meta 文件。
- 不要创建带 [MenuItem] 属性的手动菜单脚本,除非用户明确要求;手动制作仅适用于手工优化布局、特定精灵排列或编辑器预览需求。
- 变体应基于 Master 运行时 SpriteAtlas 创建,而非原始可打包对象。
- V2 图集文件扩展名为 .spriteatlasv2(不是 .spriteatlas)。
- SpriteAtlasUtility.PackAtlases() 为可选项,仅用于编辑器预览,构建时自动打包。
- 关于具体收费、价格、平台支持范围等信息,资料暂未提供。