mcpField
S
sprite-editor

sprite-editor

github.com/unity-technologies创意与媒体57748 次安装6 天前更新
代码仓库

关于 sprite-editor

为使用 Unity 的 Agent 提供精灵元数据编辑工作流,通过连接的 Editor 执行 C#,并在修改前检查能力以避免数据损坏。

主要功能

  1. 01通过 Editor 执行 C# 语句块
  2. 02修改精灵名称、矩形、边框和轴心
  3. 03添加、删除及切片精灵
  4. 04设置精灵轮廓
  5. 05使用能力检查保护操作

适用场景

  1. 01批量调整精灵导入器元数据
  2. 02为精灵设置轮廓或轴心
  3. 03在 Unity 中添加或切片精灵

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/unity-technologies/unity-agent-plugin --skill sprite-editor

安装后在 Claude Code 中输入/sprite-editor确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

SECURITY.md
references/
api_reference.md
background.md
templates.md
scripts/
AutomaticSliceTexture.cs
GenerateNewSpriteRects.cs
GetTextureSourceImageSize.cs
GetTextureToSlice.cs
GridSliceTexture.cs
IsometricSliceTexture.cs
README.md
SetPivotExample.cs
SpriteToPng.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(魔法数字)

评论

支持 Markdown