用途:理解、修改和生成 Unity uGUI 界面,包括 Canvas 层级、RectTransform、Layout Group、ScrollRect 和预制体 UI。仅生成用户请求的内容:只要布局时输出预制体或场景层级;明确要求“带代码/带逻辑”时才附加脚本。
主要能力:分析现有 UI 层级并解释结构;对某个元素做定点修改;创建新的 Canvas 层级;修复或改进现有 UI 而不重建。处理 ScrollRect/ScrollView 时需阅读参考文件 references/scrollview-setup.md。
关键规则:创建或引用 UI 组件时使用完全限定类型名,如 UnityEngine.UI.Image、UnityEngine.UI.Button,避免命名空间歧义;修改前先查询现状,确认父对象和组件存在;采用增量修复而非销毁重建;一次只做一处改动并验证。文本使用 TextMeshPro。颜色需保证默认可读,同时尊重低对比度的有意用法。
Canvas 与布局:每个 UI 需要 Canvas,通常包含 CanvasScaler、GraphicRaycaster 和内容。除非项目有特定理由(如像素画、固定分辨率),默认使用“Scale With Screen Size”,参考分辨率匹配项目标准(如 1920x1080),Match Width Or Height 取 0.5。优先使用锚点和 Layout Group 而非绝对像素定位。注意 Layout Group 会覆盖子元素锚点与 sizeDelta,避免布局冲突,例如 ContentSizeFitter 与启用 Control Child Size 的 Layout Group 同置一物会冲突。
使用方式:按“验证状态—分析需求—搜索现有资源—遵循项目命名与文件夹约定—创建或编辑—确认结果”的流程操作。交互元素需确保场景中有且仅有一个 EventSystem、Canvas 上有 GraphicRaycaster、交互元素 Raycast Target 为 true;只有请求脚本或逻辑时才需要连线 Button.onClick。
限制:资料未提供具体版本要求、价格或平台信息。不要使用 EditorApplication.ExecuteMenuItem 导入 TMP Essentials(会弹模态框阻塞),应使用 TMP_PackageResourceImporter.ImportResources()。不要用 AssetDatabase.ImportPackage() 导入 TMP 资源。