# CodeGenerator **Repository Path**: weijunhu/code-generator ## Basic Information - **Project Name**: CodeGenerator - **Description**: 代码生成器 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-19 - **Last Updated**: 2026-04-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # UA - UI Auto **版本:** 1.0.0 | **Unity:** 2022.3+ 一个 Unity UI 代码自动生成工具包,通过模板引擎将 UI 组件引用一键生成结构化的 C# 绑定代码,减少手写重复的 `GetComponent` 和事件绑定样板代码。 --- ## 目录 - [安装](#安装) - [核心概念](#核心概念) - [快速上手](#快速上手) - [模板语法](#模板语法) - [扩展 Provider](#扩展-provider) - [扩展 Generator](#扩展-generator) - [API 参考](#api-参考) --- ## 安装 通过 Unity Package Manager 以本地路径或 Git URL 方式引入 `com.ua.uiauto`。 --- ## 核心概念 | 概念 | 说明 | | ---------------- | ------------------------------------------------------------------------------ | | `UIComponents` | **Runtime** 组件,挂载在 UI 根节点上,以数组形式存储所有需要绑定的 UI 组件引用 | | `ProviderBase` | 为每种 Unity 组件类型生成生命周期代码片段(声明 / 初始化 / 事件绑定等) | | `GeneratorBase` | 代码生成器,负责读取模板、驱动 Provider、输出 C# 文件 | | `TemplateEngine` | 模板引擎,支持字段替换 `{{Field}}` 与组件迭代块 `{{#each components}}` | --- ## 快速上手 ### 第一步:挂载 UIComponents 在 UI 面板的根 GameObject 上添加 `UIComponents` 组件。 在 Inspector 中点击 **`+`** 按钮,将需要绑定的 UI 组件拖入列表并选择对应的组件类型。列表顺序即为代码中的索引顺序,可通过上下箭头调整,支持删除。 ### 第二步:调用生成器 在 Editor 代码中创建 `Generator` 实例并调用 `Generate()`: ```csharp UIComponents uiComponents = // ... 获取目标 UIComponents 组件 Generator.Generate(new GeneratorSample.SampleData("Login", "LoginForm", uiComponents)); ``` 执行后会在 `Assets/Scripts/RunTime/HotUpdate/Modules/Login/` 下生成 `LoginSampleData.cs`。 ### 第三步:使用生成的代码 生成的文件包含完整的字段声明和初始化逻辑: ```csharp internal class LoginForm { private UIForm mUIForm; private Button mButton_Confirm; private TMP_InputField mTMP_InputField_Account; public void Init(UIForm form) { mUIForm = form; mButton_Confirm = mUIForm.GetComponent