Files
AIGame/Doc/UI_AutoGen_Overview.md
T

70 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AIGame UI 自动生成方案总览
> 参考 `AIC#Project/Client/Assets/Doc` 的 JSON→Prefab 与图集约定,按本仓库(竖屏微信小游戏、YooAsset、HybridCLR)落地。
## 1. 两套互补流水线
| 流水线 | 产物 | 文档 |
| --- | --- | --- |
| **A. JSON → Prefab** | 业务 UI Prefab | `Doc/Rule/UIGenerationRules.md`、`UIGenerationPrompt.md` |
| **B. UI 图集 / 切图** | Common 控件贴图 +(后续)SpriteAtlas | `Doc/UI_*_Set.md`、`Doc/UI_Atlas_Pipeline.md` |
风格与控件视觉:`Doc/Design/UI_Design_Principles.md` + `Doc/Design/ui_design.jpg`。
当前仅使用 **Candy 糖果风**。Studio / Mint 已按用户要求删除;保留旧 `uiTheme` 字段的读取兼容,其他值回退 Candy。当前主界面继续走 JSON→Prefab,详见 `Doc/Design/UI/UI_Themes.md`。
## 2. 端到端流程(推荐)
```text
需求说明
-> Agent 读 UIGenerationPrompt + DesignPrinciples + UI_Normal_Set/UI_Pic_Set
-> 缺切图时:ResourceCreate.md 文生图(>1K 用 gpt-image-2-vip)→ Tools/output
-> 切图导入 Assets/Bundles/UI/Texture/Common(或业务子目录)
-> 写 Doc/UIPrefabCreater/{UIName}.json
-> Unity 获焦自动转换 / Tools/UI 菜单
-> 生成 Assets/Bundles/UI/Prefab/{UIName}.prefab
-> HotUpdate C# 按 bindings/events 接管
-> 登记 Doc/ResDesc_Picture.md(贴图)等
```
## 3. 本项目路径(与 AIC# 差异)
| 用途 | AIGame 路径 |
| --- | --- |
| Unity 工程 | `AIClient/` |
| UI JSON | `Doc/UIPrefabCreater/`(仓库根,不在 Assets 内) |
| 通用贴图 | `AIClient/Assets/Bundles/UI/Texture/Common/` |
| 业务贴图 | `AIClient/Assets/Bundles/UI/Texture/<Module>/` |
| Prefab | `AIClient/Assets/Bundles/UI/Prefab/` |
| 转换器 | `AIClient/Assets/Editor/UI/JsonUIPrefabBuilder.cs` |
| 自动转换 | `AIClient/Assets/Editor/UI/JsonUIAutoConvert.cs` |
| 热更 UI 代码 | `AIClient/Assets/HotUpdate/Scripts/UI/`(待扩展) |
| 设计分辨率 | **竖屏 `[1080, 1920]`**(非参考项目的 2048×1024) |
## 4. Unity 菜单
- `Tools/UI/Generate Prefab From JSON...`
- `Tools/UI/Generate All Prefabs From JSON`
- `Tools/UI/Convert Changed JSON Prefabs Now`
- `Tools/UI/Auto Convert JSON On Focus`(默认开启)
Prefab / 导入设置须遵守 `UNITY-GUIDE.md`:Agent 不手改 `.prefab`,用本转换器或 Pipeline。
标准控件底图必须同时满足 Sprite 非零 `Border`、`Full Rect` 和 JSON `imageType: Sliced`。Common 的 26 张标准控件由 `UiSpriteNineSliceRules.cs` 自动设置导入边界(按 Normal Set 设计尺寸换算到实际切图,含 2px 透明留边);已有资源可用 `Tools/UI/Apply Standard Control Nine-Slice` 修复。转换器会拒绝标准控件的错误 Image 类型、缺失 Sprite 或无效 Border,省略类型时默认 Sliced。图标和插画仍按整图使用。新增标准控件时同步扩展切图清单及导入规则。
## 5. 图集分级
| 文档 | 用途 |
| --- | --- |
| `Doc/UI_Simple_Set.md` | 24 切片最小集 |
| `Doc/UI_Normal_Set.md` | 38 切片常规集(推荐起步) |
| `Doc/UI_Pic_Set.md` | ~48 切片完整常用集 |
生成脚本与模型规则见 `ResourceCreate.md`。
## 6. 首期不做 / 后续
- 首期:JSON→Prefab + Common 切图目录约定;Sprite 可先单图导入。
- 后续:按目录自动打 `.spriteatlas`、AtlasEnum、YooAsset 原图绑定(见 `Doc/UI_Atlas_Pipeline.md`)。
- 转换器未实现:`Toggle` / `Slider` / `Scrollbar` / `TMP_Dropdown`(可用 Image+Button 骨架)。