# HTML-to-UGUI-Baker **Repository Path**: titd/HTML-to-UGUI-Baker ## Basic Information - **Project Name**: HTML-to-UGUI-Baker - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-15 - **Last Updated**: 2026-03-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HTML to UGUI Baker 这是一套将 AI 生成的 HTML 原型直接转换为 Unity UGUI 界面树的自动化生产管线。通过自定义的 HTML 数据属性规范(UI-DSL),结合 Web 坐标提取工具和 Unity 编辑器扩展,实现从“自然语言对话”到“生产级 UGUI 预制体”的无缝流转。 ## 核心特性 * **全控件拓扑支持**:不仅支持基础排版,还在 Unity 端硬编码了 `Toggle`、`Slider`、`Dropdown`、`ScrollRect` 等复杂控件的标准 UGUI 嵌套层级,保证生成的节点结构与原生右键创建的绝对一致。 * **所见即所得**:精准提取 HTML 的绝对坐标、尺寸、背景色、字体颜色、字体大小以及文本对齐方式(Left/Right/Center)。 * **代码级规范**:强制采用小驼峰命名法(camelCase),生成的 UI 节点名称可直接用于 C# View 层的变量绑定(如 `loginBtn`)。 * **零依赖**:Unity 端纯 C# 原生 Editor 扩展,基于 TextMeshPro 构建,无需引入任何第三方 UI 插件。 --- ## 工作流与使用指南 整个管线分为三个标准步骤:**AI 生成 -> Web 烘焙 -> Unity 构建**。 ### Step 1: 让 AI 生成 UI 原型 (HTML) 1. 将本项目提供的 `AI生成UI原型HTML规范.md` 发送给任意大语言模型(如 ChatGPT, Claude, Gemini)。 2. 用自然语言描述你需要的界面,例如:“*帮我写一个系统设置界面,包含音量滑动条、全屏开关和画质下拉菜单*”。 3. 复制 AI 按照规范生成的 HTML 代码。 ### Step 2: 提取坐标与状态 (JSON) 1. 在浏览器中双击打开本项目提供的 `HTML转JSON坐标烘焙器.html` 工具。 2. 将 AI 生成的 HTML 代码粘贴到左侧的输入框中。 3. 点击 **“提取坐标并生成 JSON”**,工具会在沙盒中渲染预览,并计算所有节点的相对坐标与高级属性。 4. 点击 **“复制 JSON”**,将生成的 JSON 数据保存为 `.json` 文件(例如 `SettingsWindow.json`)。 ### Step 3: 在 Unity 中一键生成 UGUI 1. 将 `HtmlToUGUIBaker.cs` 放入 Unity 工程的 `Assets/Editor/` 目录下。 2. 将刚才生成的 `.json` 数据文件拖入 Unity 工程中。 3. 在 Unity 顶部菜单栏点击:`Tools -> UI Architecture -> HTML to UGUI Baker (Full Controls)`。 4. 在弹出的工具窗口中: * **JSON 数据源**:拖入你的 `.json` 文件。 * **目标 Canvas**:拖入场景中的 Canvas 节点。 5. 点击 **“执行烘焙生成”**。 6. 完成!你的 Canvas 下会自动生成完整的 UI 节点树,所有控件均已配置完毕且可直接运行。 --- ## 控件映射支持列表 | HTML 标签声明 | Unity UGUI 对应组件 | 支持的高级属性 | | :--- | :--- | :--- | | `data-u-type="div"` | Image (Raycast 自动剔除) | 尺寸、坐标、背景色 | | `data-u-type="image"` | Image | 尺寸、坐标、背景色 | | `data-u-type="text"` | TextMeshProUGUI | 字体大小、颜色、对齐方式 | | `data-u-type="button"` | Button + Image + TMP | 交互组件、内部文本样式 | | `data-u-type="input"` | TMP_InputField | 占位符文本、输入文本样式 | | `data-u-type="scroll"`| ScrollRect + Mask | 滚动方向 (`data-u-dir="v/h"`) | | `data-u-type="toggle"`| Toggle + Image + TMP | 默认开关状态 (`data-u-checked`) | | `data-u-type="slider"`| Slider + Image | 默认进度值 (`data-u-value`) | | `data-u-type="dropdown"`| TMP_Dropdown + ScrollRect | 内部 `