NLDClient-yudde/.kiro/skills/ui-prefab-dev/SKILL.md

3.9 KiB
Raw Blame History

name description version updated
ui-prefab-dev Unity UI Prefab 开发:结构分析、组件修改、代码生成。涉及 UI Prefab 层级查看、组件属性读取、UI 控制器代码编写。触发关键词UI界面 UI开发、Prefab 预制体、UIBaseController、AutoGen、UGUI、RectTransform、Image Button Text、ScrollRect 列表、extract_ui_prefab、ExtractedPrefabs、UI控制器。 1.0 2026-05-08

UI Prefab 开发

分析、修改和生成 Unity UI Prefab 及相关 C# 控制器代码。

前置知识

  • UI Prefab 位置: Assets/ 下的各 UI 模块目录
  • UI 控制器代码: Assets/Code/Scripts/GamePlay/UI/60+ 控制器)
  • 生成代码标记: *Controller.AutoGen.cs 文件(自动生成,勿手动修改)
  • ExtractedPrefabs: ExtractedPrefabs/ 目录存放导出的 Prefab JSON 结构
  • JSON 格式说明: ExtractedPrefabs/README.md

工作流

1. 获取 UI Prefab 结构

通过 Unity MCP 提取 Prefab 结构信息:

execute_custom_tool: {
  tool_name: "extract_ui_prefab",
  parameters: { prefab_path: "Assets/xxx/xxx.prefab" }
}

读取返回的 JSON 文件,参考 ExtractedPrefabs/README.md 理解 JSON 格式。

重要: 每次分析前都需重新提取(避免读取旧数据)。

2. 理解 UI 层级结构

JSON 格式和属性格式定义见 ExtractedPrefabs/README.md

常见组件类型:

  • RectTransform: 锚点、位置、尺寸
  • Image: Sprite 引用、Color、ImageType、RaycastTarget
  • Text/TMP_Text: 文本内容、字体、字号、颜色
  • Button: Transition 类型、颜色状态
  • CanvasRenderer: 渲染参数

3. 分析 UI 控制逻辑

UI 控制器代码模式:

// 手动编写的控制器(可修改)
public class UI_XXXController : UIBaseController
{
    // 绑定 UI 组件引用
    // 业务逻辑方法
}

// 自动生成的控制器(不可手动修改)
public class UI_XXXController.AutoGen : ... 
{
    // 自动生成的组件绑定代码
}

4. 修改或创建 UI

修改已有 UI

  1. 提取 Prefab JSON 了解当前结构
  2. 查看对应的 *Controller.cs 了解代码逻辑
  3. 修改 Prefab通过 Unity Editor或代码
  4. 确保 AutoGen 和手动代码分工明确

创建新 UI

  1. 在 Unity 中创建 Prefab
  2. 编写对应的 Controller 类(继承 UIBaseController
  3. 如需自动绑定,编写 AutoGen 辅助类
  4. 注册到 UI 管理系统中

不适用场景

  • 纯逻辑 UI 改动(不涉及 Prefab 结构变化)→ 直接改 Controller 代码即可
  • 简单的位置/颜色微调 → 无需走完整提取流程,直接描述修改即可

属性格式参考

类型 格式示例
Vector2 AnchoredPosition:0,0
Vector3 LocalPosition:0,0,0
Color Color:#RRGGBBAA
Bool RaycastTarget:true
Enum ImageType:Sliced
引用 Sprite:icon_name

UI 模块索引

GamePlay/UI/
├── Activity/        # 活动界面
├── BattlePass/      # 战令
├── Camp/            # 营地
├── Character/       # 角色界面
├── Dispatch/        # 派遣
├── Draw/            # 抽卡
├── Legion/          # 军团
├── LegionBattle/    # 军团战
├── LegionPve/       # 军团PVE
├── LevelFight/      # 关卡战斗
├── Loading/         # 加载界面
├── Login/           # 登录
├── Mail/            # 邮件
├── Package/         # 背包
├── PVP/             # PVP
├── Raffle/          # 抽奖
├── Shop/            # 商店
├── Story/           # 剧情
├── Task/            # 任务
└── Team/            # 编队

安全规则

  • AutoGen 文件(*Controller.AutoGen.cs)不可手动修改
  • Prefab 修改后需要在 Unity 中保存,.meta 文件由 Unity 自动生成
  • 图片资源引用确保路径正确,避免丢失引用
  • UI 变更可能影响多个界面,修改前确认影响范围