AlicizaX/Client/Assets/Books/EditorExtension/AtlasPostprocessor.md
2026-04-01 13:20:06 +08:00

84 lines
2.4 KiB
Markdown

# EditorExtension Atlas 自动图集模块手册
## 模块概述
该模块位于 `Editor/Postprocessor/Atlas`,用于维护图集配置、响应 Sprite 导入/删除、标记脏图集并执行全量生成。
## 适用场景
- 以目录为单位自动生成 UI 图集。
- 不同平台使用不同压缩格式。
- 导入资源时自动更新图集状态。
## 快速上手
### 打开配置窗口
- 菜单:`Tools/Extension/图集工具/Configuration Panel`
### 全量生成
```csharp
EditorSpriteSaveInfo.ForceGenerateAll();
```
## 模块组成
- `AtlasConfiguration`:图集配置单例。
- `AtlasConfigWindow`:配置窗口。
- `EditorSpriteSaveInfo`:缓存、脏标记、全量生成。
- `SpritePostprocessor`:接入 Unity 导入流程。
## 可调用 API
### 类型:`AtlasConfiguration`
源码:`Packages/com.alicizax.unity.editor.extension/Editor/Postprocessor/Atlas/AtlasConfiguration.cs`
#### 公开配置字段
- `outputAtlasDir`
- `sourceAtlasRoot`
- `androidFormat`
- `iosFormat`
- `webglFormat`
- `padding`
- `enableRotation`
- `blockOffset`
- `tightPacking`
- `compressionQuality`
- `autoGenerate`
- `enableLogging`
- `enableV2`
- `excludeKeywords`
- `excludeFolders`
示例:
```csharp
AtlasConfiguration.Instance.autoGenerate = true;
AtlasConfiguration.Save(true);
```
### 类型:`AtlasConfigWindow`
#### `public static void ShowWindow()`
- 作用:打开图集配置窗口。
### 类型:`EditorSpriteSaveInfo`
源码:`Packages/com.alicizax.unity.editor.extension/Editor/Postprocessor/Atlas/EditorSpriteSaveInfo.cs`
#### `public static void ConvertToSprite(string assetPath)`
- 作用:把资源路径转换或校正为 Sprite 导入设置。
#### `public static void OnImportSprite(string assetPath)`
- 作用:处理 Sprite 导入。
#### `public static void OnDeleteSprite(string assetPath)`
- 作用:处理 Sprite 删除。
#### `public static void ForceGenerateAll()`
- 作用:全量生成图集。
#### `public static void ClearCache()`
- 作用:清理模块缓存。
#### `public static void MarkParentAtlasesDirty(string assetPath)`
- 作用:标记资源所在父图集为脏。
### 类型:`SpritePostprocessor`
- 说明:继承 `AssetPostprocessor`,作为导入事件入口,本身无额外公开调用接口。
## 注意事项
- 建议原图目录与输出目录严格分离。
- 开启自动生成时,排除目录和关键字要统一维护。