Sprite 精灵图 — 从图集裁切导出、alpha mask、Texture2DArray
Sprite 与 Texture2D 的关系
Unity 里 Sprite 不是独立的图片文件——它是从一张大图(通常是 Texture2D 图集)上裁一块矩形区域出来的逻辑资源。Asset List 里同时会看到 Texture2D 和 Sprite 两类条目:
- Texture2D:整张大图(可能包含几十个 Sprite);
- Sprite:从这张大图上裁好的小图,Unity 记录了它在大图里的位置、宽高、pivot 等参数。
导出 Sprite
AssetStudio 导出 Sprite 时,会自动按 Unity 里记录的矩形位置从对应的 Texture2D 上裁切,再导出成 PNG / TGA / JPEG / BMP(AssetStudioMod 额外支持 WebP)。
导出步骤:
- Asset List 里右键 → Filter Type → 只勾 Sprite;
- 选中想导出的 Sprite(可多选);
- 右键 → Export Selected Assets;
- 选输出目录。
注意:AssetStudio 导出 Sprite 时需要同时能访问对应的 Texture2D。如果你的 AssetBundle 里只加载了 Sprite 所在的文件但没加载 Texture2D 所在的文件,裁切会失败。用 Load folder 加载整个项目目录可以避免这个问题。
Alpha Mask Sprite(仅 AssetStudioMod)
AssetStudioMod 额外支持带 m_RD.alphaTexture 的 Sprite——这是 Unity 2020+ 的一种新格式,Sprite 的 alpha 通道独立存在一张单独的 alpha 贴图里,而不是嵌在主纹理的 A 通道。
原版 AssetStudio 导出这种 Sprite 时只有主纹理(丢了 alpha),导出来是不透明的图。AssetStudioMod 会把主纹理和 alpha 贴图正确合成为带完整 alpha 的 Sprite。
三模式预览
AssetStudioMod 的预览面板对这种 Sprite 提供三种显示模式:
| 模式 | 快捷键 | 效果 |
|---|---|---|
| On | — | 默认,完整精灵图 |
| Off | Ctrl+A | 隐藏 alpha,只看 RGB |
| MaskOnly | Ctrl+M | 只显示 alpha 灰度图 |
按 Ctrl+A 切换 Off 模式可以快速确认这张 Sprite 是不是带独立 alpha mask 的——Off 模式下完全不透明就是有独立 alpha。
Texture2DArray(仅 AssetStudioMod)
Texture2DArray 是 Unity 把多张尺寸相同的 Texture2D 打包成一张数组贴图的格式(节省 draw call)。原版 AssetStudio 打不开 Texture2DArray,AssetStudioMod 支持:
- 显示每个 layer 的独立条目;
- 可以选择导出全部 layer 或单个 layer;
- 可导出为 WebP / PNG / TGA / JPEG / BMP。
什么时候用 Sprite 而不是 Texture2D
| 场景 | 选哪个 |
|---|---|
| 想直接拿到裁好的立绘 / UI 小图 | Sprite |
| 想看原始大图、图集布局、压缩数据 | Texture2D |
| 想确认 Sprite 的位置 / 矩形参数 | 两个都加载,在 Asset List 里点 Sprite 看 Container 路径就能关联到对应的 Texture2D |
实战里通常先从 Sprite 下手——它是最终你要的成品图,省掉了手动在大图里抠图的麻烦。