关于 sprite-editor
为使用 Unity 的 Agent 提供精灵元数据编辑工作流,通过连接的 Editor 执行 C#,并在修改前检查能力以避免数据损坏。
主要功能
- 01通过 Editor 执行 C# 语句块
- 02修改精灵名称、矩形、边框和轴心
- 03添加、删除及切片精灵
- 04设置精灵轮廓
- 05使用能力检查保护操作
适用场景
- 01批量调整精灵导入器元数据
- 02为精灵设置轮廓或轴心
- 03在 Unity 中添加或切片精灵
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ unity-technologies/ unity-agent-plugin --skill sprite-editor安装后在 Claude Code 中输入/sprite-editor确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
SECURITY.mdreferences/api_reference.mdbackground.mdtemplates.mdscripts/AutomaticSliceTexture.csGenerateNewSpriteRects.csGetTextureSourceImageSize.csGetTextureToSlice.csGridSliceTexture.csIsometricSliceTexture.csREADME.mdSetPivotExample.csSpriteToPng.cs详细介绍
Sprite Editor
精灵元数据(矩形、边框、轴心、轮廓)存储在导入器中,而不是可编辑的文件里 ——要访问这些数据,必须通过已连接的 Editor 运行 C#。
unity-cli 技能负责带你完成这一步:安装 CLI、确认已连接的
Editor、添加项目的 com.unity.pipeline 包、区分真正缺少的 Editor 和卡在安全模式中的 Editor,
以及查找 Editor 的命令目录。请先遵循该技能的说明;不要在这里重新推导这些内容。
有两件事它无法替你确认:
- **你需要的是
script eval,而不仅仅是能连接到 Editor。**请确认它出现在 命令目录中——它是否存在取决于 Pipeline 包的版本,而非 CLI。 - **绝不要通过手动编辑
.meta文件来更改精灵元数据。**这些数据由导入器管理, 以下能力检查旨在防止数据损坏;因此,Editor 无法连接时就应停止,而不是临时变通。
使用 script eval 命令,通过已连接的 Editor 运行 C#。请通过 unity command --format json 查明其参数格式,
不要凭空假设——内联形式为
unity command script eval --caller plugin --skill sprite-editor --code '<snippet>',某些 Pipeline 版本也会注册
script eval_file,用于从文件运行代码片段。使用 script eval_file 前,请先检查命令目录;它经常不存在。unity command 的默认超时时间为 30 秒。
生成用于操作 Unity 精灵的 C# Editor 脚本,使用 ISpriteEditorDataProvider。适用于 TextureImporter、PSBImporter 和自定义导入器。
向 script eval 传递 C#
script eval 编译的是语句块,而不是文件。这会带来两个后果,都会导致编译错误,而非警告:
- **不能使用
using指令。**编译器会将using UnityEngine;视为资源释放 语句并拒绝编译(CS0210)。 - **类型必须使用完全限定名。**直接写
AssetDatabase或Volume无法解析 (CS0246/CS0103);直接写Object则会与object混淆(CS0104)。
下方某个代码片段若以文件形式编写——包含 using、为了便于阅读,或旨在保存到项目中——
请先限定类型,再将其传递给 script eval。
工作流
所有生成的脚本都必须遵循 references/templates.md 中的安全核心模式,其中包含强制性能力检查。能力检查失败时,绝不要尝试执行操作——这可以防止数据损坏。执行后,请在 Unity 控制台和 Project 窗口中验证结果。
常见操作
**修改名称/矩形/边框/轴心:**更新对应的 SpriteRect 字段(轴心示例参见 scripts/SetPivotExample.cs)
- 要求:
EditSpriteName、EditSpriteRect、EditBorder或EditPivot
**添加/移除/切片:**创建或筛选 SpriteRect 数组(Unity 2021.2+ 的要求参见 references/background.md)
- 要求:
CreateAndDeleteSprite
**设置轮廓:**获取 ISpriteOutlineDataProvider → 使用 GUID + Vector2 数组调用 SetOutlines()
重要说明
- 不要使用 AssetPostprocessor 或 MenuItem 模式
- 仅生成独立代码片段——不要使用
AssetPostprocessor,也不要使用MenuItem - **枚举赋值:**始终使用枚举值并转换为数值类型。不要使用原始数字。
- ✅ 正确:
(int)SpriteAlignment.Center - ❌ 错误:
1(魔法数字)
- ✅ 正确: