4.1 KiB
4.1 KiB
| name | description |
|---|---|
| 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控制器。 |
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 输出格式:
UIInfoNode {
name: string // GameObject 名称
active: boolean // 激活状态
components: [] // UIInfoComponent 列表
children: [] // 子节点(递归)
}
UIInfoComponent {
componentName: string // 组件类型名(RectTransform, Image, Text, Button...)
enable: boolean // 启用状态
properties: string[] // "Key:Value" 格式属性列表
}
常见组件类型:
- 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:
- 提取 Prefab JSON 了解当前结构
- 查看对应的
*Controller.cs了解代码逻辑 - 修改 Prefab(通过 Unity Editor)或代码
- 确保 AutoGen 和手动代码分工明确
创建新 UI:
- 在 Unity 中创建 Prefab
- 编写对应的 Controller 类(继承 UIBaseController)
- 如需自动绑定,编写 AutoGen 辅助类
- 注册到 UI 管理系统中
属性格式参考
| 类型 | 格式示例 |
|---|---|
| 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 变更可能影响多个界面,修改前确认影响范围