关于 unity-so-prefab-manager
为 Unity 项目提供 ScriptableObject 与 Prefab 实例的桥接模式指导,适合管理共享模板和独立运行时状态。还涵盖批量创建资源及 YAML 深度检查与修复。
主要功能
- 01分离静态模板与运行时状态
- 02通过 Awake 初始化实例数据
- 03使用 Unity API 创建资源
- 04批量生成 YAML 资源
- 05检查并修复 GUID 引用
适用场景
- 01多个单位共享模板但保留独立生命值
- 02创建少量或大量 ScriptableObject 资源
- 03排查 Prefab 中脚本 GUID 关联
- 04批量修复项目中的损坏引用
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ muharremtozan/ unity-agent-skills --skill unity-so-prefab-manager安装后在 Claude Code 中输入/unity-so-prefab-manager确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/bridge-pattern.mdnaming-conventions.mdyaml-templates.mdunity-so-prefab-manager/assets/code/DataEntity.cs.txtunity-so-prefab-manager/references/bridge-pattern.mdnaming-conventions.mdyaml-templates.md详细介绍
Unity SO-Prefab Manager
此技能强制在数据与逻辑之间采用严格模块化的“Bridge”模式。
核心工作流:Bridge 模式
为确保同一单元的多个实例(例如 4 个机器人)在共享同一模板(RobotSO)的同时,拥有独立的运行时数值(生命值、能量),请按以下步骤操作:
1. 构建 ScriptableObject(模板)
SO 应包含定义对象“理想”状态的静态/只读数据。
- 示例:
maxHealth、baseSpeed、displayName。
2. 构建 MonoBehaviour(实例)
Prefab 上的脚本应包含运行时/可变数据以及对 SO 的引用。
- 示例:
currentHealth、activeBuffs。
3. 初始化 Bridge
使用 Awake() 将 SO 中的值复制到本地实例变量中。
[Header("Data Reference")]
[SerializeField] private RobotSO data;
[Header("Runtime State")]
private float currentHealth;
private void Awake() {
if (data == null) {
Debug.LogError($"[System] Fail: Missing SO data on {gameObject.name}");
return;
}
// Initialize independent state
currentHealth = data.MaxHealth;
Debug.Log($"[{data.name}] Success: Initialized instance | Health: {currentHealth}");
}
高级用法
1. 创建文件:API 优先与 YAML 强力模式
标准(1-10 个文件)- 使用 Unity API
对于大多数任务,请使用 mcp_unityMCP_manage_scriptable_object。这是最稳妥的方法,可确保 GUID 完整性并立即生成 .meta 文件。
- 工作流:
Call manage_scriptable_object->Apply Patches。
高性能(10 个以上文件)- 使用 YAML 生成
对于大量数据导入(例如导入 50 个项目),可绕过 API 延迟,直接写入文件。
- 工作流:
- 根据现有的
.asset文件创建 YAML 模板。 - 通过
write_to_file将.asset文件直接写入Assets/Data/。 - 调用
mcp_unityMCP_refresh_unity(scope="assets"),强制 Unity 生成.meta文件。
- 根据现有的
2. 精准 YAML 操作(深度调试)
对于 API 无法快速处理的“深度审查”,请直接读取/解析文件:
- GUID 验证: 在 Prefab 中搜索特定的
m_Script: {fileID: ..., guid: ...},查找实际附加了哪些脚本。 - 引用修复: 在整个项目中使用
grep_search和replace_file_content替换损坏的 GUID,无需逐个打开 Editor。
参考资料
- 详细实现说明和故障排查,请参阅 references/bridge-pattern.md。
- 项目标准文件夹结构,请参阅 references/naming-conventions.md。
- Unity 标准 YAML 样板,请参阅 references/yaml-templates.md。
评论
支持 Markdown