十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

unity-mcp `manage_ui` 工具全解:用 AI 驱动 Unity UI Toolkit(UXML / USS / UIDocument)

unity-mcp `manage_ui` 工具全解:用 AI 驱动 Unity UI Toolkit(UXML / USS / UIDocument) unity-mcpmanage_ui工具全解用 AI 驱动 Unity UI ToolkitUXML / USS / UIDocument【免费下载链接】unity-mcpUnity MCP acts as a bridge between AI assistants and your Unity Editor. Give your LLM tools to manage assets, control scenes, edit scripts, and automate tasks within Unity.项目地址: https://gitcode.com/GitHub_Trending/un/unity-mcp导读本文围绕 unity-mcp 的manage_ui工具展开讲解如何让 AI 助手直接读取、创建、修改和删除 Unity UI Toolkit 的 UXML 文档、USS 样式表与 UIDocument 组件并能对界面视觉树进行运行时检查与截图自评。读完本文你将掌握manage_ui的全部 14 种 action 的用法、参数语义与调用限制并能基于仓库源码理解其路径校验、内容编码、UXML 预校验等底层机制直接在自己的 Unity 项目中搭建「AI 驱动的前端式 UI 工作流」。manage_ui定义于 Python 工具注册文件其 Unity 侧实现位于 ManageUI.cs工具分组为ui默认在 tool-groups 中属于可开关的工具组。从源码看它同时覆盖了「文件操作」「组件挂载」「运行时修改」「视觉截图」四类能力是 Unity MCP 中处理 UI Toolkit 的核心入口。一、为什么需要manage_ui从「写死 UI」到「对话式建 UI」Unity 项目中的 UI 通常有两种体系基于 Canvas 的 uGUI 和现代的UI Toolkit。UI Toolkit 采用接近前端开发的模式——UXML 负责结构类似 HTMLUSS 负责样式类似 CSS并通过UIDocument组件挂到场景 GameObject 上渲染。unity-mcp 的manage_ui就是为这套工作流量身定制的桥梁AI 助手无需手动打开编辑器、拖拽组件只需按工具约定的参数发起调用即可在 Unity 编辑器内完成从「创建 UXML 文件」到「挂载到场景」再到「运行时改样式、截图验证」的闭环。在 技能参考文档 中UI Toolkit 场景被明确指向使用manage_ui而 workflows.md 则进一步强调对于新项目UI Toolkit 是首选 UI 体系manage_ui是其唯一入口。推荐的工作流总览文档给出的标准流程可以概括为 10 步用list发现已有的 UI 资源用create创建 UXML 文件结构类似 HTML用create创建 USS 文件样式类似 CSS用link_stylesheet把 USS 链接进 UXML用attach_ui_document将 UXML 作为UIDocument挂到 GameObject 上用get_visual_tree检查渲染结果用modify_visual_element修改实时元素的文本、class 或内联样式用render_ui截图 UI 面板用于 AI 自评用detach_ui_document从 GameObject 移除 UIDocument用delete删除.uxml/.uss文件。一个必须记住的坑UXML 中引用样式必须写ui:Style带ui:命名空间前缀不能写裸的Style。UI Builder 无法打开使用裸Style的文件。这一点同时出现在工具描述与工作流文档中属于高频踩坑点。二、参数总表一次看懂全部入参manage_ui的参数覆盖四类用途文件操作、组件挂载、截图渲染、运行时元素修改。下表汇总全部参数对应 工具签名 与 参考文档参数类型必填说明actionLiteral枚举是要执行的动作14 种见下节pathstr \| None—Assets 相对路径如Assets/UI/MainMenu.uxml、Assets/UI/Styles.uss对render_ui也可是直接渲染的 UXML 路径无需场景 GameObjectcontentsstr \| None—文件内容UXML 或 USS 标记纯文本编码自动处理targetstr \| None—目标 GameObject 名称或路径attach_ui_document/get_visual_tree/render_ui使用source_assetstr \| None—UXML VisualTreeAsset 路径如Assets/UI/MainMenu.uxmlpanel_settingsstr \| None—PanelSettings 资源路径省略时自动创建默认项sort_orderint \| None—UIDocument 排序顺序默认 0scale_modeLiteral枚举 | None—Panel 缩放模式ConstantPixelSize/ConstantPhysicalSize/ScaleWithScreenSize。遗留简写推荐用settings字典reference_resolutiondict[str, int] \| None—参考分辨率{width, height}。遗留简写推荐用settings字典settingsdict[str, Any] \| None—通用 PanelSettings 属性字典见下节详解max_depthint \| None—视觉树遍历最大深度默认 10widthint \| None—渲染宽度像素默认 1920用于render_uiheightint \| None—渲染高度像素默认 1080用于render_uiinclude_imagebool \| None—是否在响应中内联返回 base64 PNG默认 false用于render_uimax_resolutionint \| None—内联 base64 图片最大分辨率默认 640用于render_uiscreenshot_file_namestr \| None—渲染输出自定义文件名默认自动生成用于render_uioutput_folderstr \| None—渲染输出目录。项目相对路径如Assets/Screenshots、Captures或项目内绝对路径覆盖用户的编辑器偏好设置。省略时回退到编辑器偏好再回退到内置默认Assets/Screenshots用于render_uistylesheetstr \| None—要链接的 USS 样式表路径如Assets/UI/Styles.uss用于link_stylesheetfilter_typestr \| None—按类型过滤 UI 资源uxml、uss、PanelSettings或省略表示全部用于listpage_sizeint \| None—每页结果数默认 50用于listpage_numberint \| None—页码从 1 开始默认 1用于listelement_namestr \| None—要修改的视觉元素名称UXML 中的name属性用于modify_visual_elementtextstr \| None—Label / Button 元素的新文本内容用于modify_visual_elementadd_classeslist[str] \| None—要添加到元素的 USS class 名称用于modify_visual_elementremove_classeslist[str] \| None—要从元素移除的 USS class 名称用于modify_visual_elementtoggle_classeslist[str] \| None—要在元素上切换的 USS class 名称用于modify_visual_elementstyledict[str, Any] \| None—要设置的内联样式如{backgroundColor: #FF0000, fontSize: 24}用于modify_visual_elementenabledbool \| None—设置元素启用/禁用状态用于modify_visual_elementvisiblebool \| None—设置元素可见性display: flex/none用于modify_visual_elementtooltipstr \| None—设置元素 tooltip 文本用于modify_visual_element返回值一个dict包含 Unity 的响应。具体结构随 action 不同而变化下文逐一说明。三、14 种 action 逐一拆解3.1ping连通性检查返回pong附带tool: manage_ui标识用于确认 Unity 侧工具已正确注册。Unity 侧实现见 ManageUI.cs。3.2 文件操作create/read/update/delete这四个 action 负责.uxml与.uss文件的生命周期源码层面存在一套严格的双层校验Python 侧前置校验manage_ui.py路径必须位于Assets/下、不允许..路径穿越、扩展名必须是.uxml或.uss。对应集成测试见 test_manage_ui.py。Unity 侧写入校验ManageUI.cs写入前对 UXML 做 XML 合法性解析ValidateUxmlContent解析失败则拒绝写盘并返回带行列号的错误校验通过后还会自动注入editor-extension-modeFalse属性EnsureEditorExtensionMode保证文件能被 UI Builder 正常打开文件使用UTF-8 无 BOM编码写入Utf8NoBom——Unity 6 的 UI Builder 无法打开带 BOM 的 UXML写盘后通过AssetDatabase.ImportAsset(path, ImportAssetOptions.ForceUpdate)强制导入并尝试加载为VisualTreeAsset做导入后验证解析失败时以 warning 形式提示。create时若文件已存在会报错提示改用update覆盖update时若文件不存在会提示先用create。内容编码细节create/update的contents在传输前会被 base64 编码为encodedContents并置contentsEncodedtruemanage_ui.py测试中明确断言原始contents不会出现在参数里test_manage_ui.pyread的响应同样以 base64 返回Python 侧收到后自动解码还原为明文contents字段manage_ui.py。调用示例# 创建 UXML结构 manage_ui( actioncreate, pathAssets/UI/MainMenu.uxml, contentsui:UXML xmlns:uiUnityEngine.UIElements ui:Label textHello World / /ui:UXML ) # 读取现有文件响应中 contents 为解码后的明文 result manage_ui(actionread, pathAssets/UI/MainMenu.uss) # 更新文件 manage_ui( actionupdate, pathAssets/UI/MainMenu.uss, contents.title { font-size: 64px; color: yellow; } ) # 删除资源通过 AssetDatabase删除失败有兜底 File.Delete manage_ui(actiondelete, pathAssets/UI/OldPanel.uxml)注意create传入非法扩展名如.cs会直接返回错误「Invalid file extension… Must be .uxml or .uss.」这部分逻辑由 Python 侧与 Unity 侧各自实现、双重把关。3.3link_stylesheet给 UXML 挂上 USS该 action 在 UXML 根节点ui:UXML起始标签之后插入一行ui:Style srcproject://database/Assets/UI/Styles.uss /实现见 ManageUI.cs。细节会先检查是否已存在相同链接同时匹配src...与srcproject://database/...两种写法重复调用幂等返回alreadyLinkedtrue插入点查找FindUxmlBodyStart会跳过 XML 注释中的伪匹配且根节点若为自闭合标签则拒绝插入若 UXML 中已有ui:Style或Style引用此 action 主要用于「结构上补挂样式表」例如在工作流第 1~4 步中把新建的 USS 挂进新建的 UXML。3.4attach_ui_document/detach_ui_document挂载与卸载attach_ui_document完成三件事ManageUI.cs通过ObjectResolver.Resolve按名称/路径查找目标 GameObject找不到报错加载source_asset指定的VisualTreeAsset找不到报错解析 PanelSettings显式传入panel_settings则加载该资源否则先全局查找现有t:PanelSettings找不到就在Assets/UI/DefaultPanelSettings.asset自动创建默认项用Undo记录操作后为 GameObject 添加或复用UIDocument组件设置visualTreeAsset、panelSettings、sortingOrder。示例完整建 UI 屏幕出自 workflows.md# 1. 创建 UXML结构 manage_ui( actioncreate, pathAssets/UI/MainMenu.uxml, contentsui:UXML xmlns:uiUnityEngine.UIElements xmlns:uieUnityEditor.UIElements ui:Style srcAssets/UI/MainMenu.uss / ui:VisualElement nameroot classroot-container ui:Label textMy Game classtitle / ui:Button textPlay nameplay-btn classmenu-button / ui:Button textSettings namesettings-btn classmenu-button / ui:Button textQuit namequit-btn classmenu-button / /ui:VisualElement /ui:UXML ) # 2. 创建 USS样式 manage_ui( actioncreate, pathAssets/UI/MainMenu.uss, contents.root-container { flex-grow: 1; justify-content: center; align-items: center; background-color: rgba(0, 0, 0, 0.8); } .title { font-size: 48px; color: white; -unity-font-style: bold; margin-bottom: 40px; } .menu-button { width: 300px; height: 60px; font-size: 24px; margin: 8px; background-color: rgb(50, 120, 200); color: white; border-radius: 8px; } .menu-button:hover { background-color: rgb(70, 140, 220); } ) # 3. 创建 GameObject 并挂载 UIDocumentpanel_settings 省略时自动创建 manage_gameobject(actioncreate, nameUIRoot) manage_ui( actionattach_ui_document, targetUIRoot, source_assetAssets/UI/MainMenu.uxml ) # 4. 验证视觉树 manage_ui(actionget_visual_tree, targetUIRoot, max_depth5)detach_ui_document则查找目标 GameObject 上的UIDocument组件通过Undo.DestroyObjectImmediate移除并返回被移除的sourceAsset路径ManageUI.cs。目标上没有 UIDocument 时会明确报错。3.5create_panel_settings/update_panel_settingsPanelSettings 资产PanelSettings 控制 UI 面板如何渲染缩放、DPI、清屏、动态图集等。create_panel_settings的路径支持.asset自动补全传入Assets/UI/MyPanel会自动补成.asset已存在则报错update_panel_settings则要求settings字典至少含一个可识别属性否则报错「No recognised properties were applied. Check the key names.」ManageUI.cs。settings字典支持的键工具签名 与 ApplyPanelSettingsProperties 实现 完全一致键取值/结构说明scaleModeConstantPixelSize|ConstantPhysicalSize|ScaleWithScreenSize缩放模式referenceResolution{width, height}参考分辨率screenMatchModeMatchWidthOrHeight|ShrinkToFit|ExpandToFill屏幕匹配模式match0–1 浮点宽高匹配权重实现中会Mathf.Clamp01钳制referenceDpi/fallbackDpi浮点参考/回退 DPIsortingOrder整数排序顺序targetDisplay整数目标显示器clearColor布尔是否清屏颜色colorClearValue#RRGGBB或{r,g,b,a}清屏颜色值clearDepthStencil布尔是否清理深度模板themeStyleSheet资源路径主题样式表需能加载为ThemeStyleSheetdynamicAtlasSettings{minAtlasSize, maxAtlasSize, maxSubTextureSize, activeFilters}动态图集设置两个额外实现细节键名匹配是大小写与下划线不敏感的scale_mode、scaleMode、ScaleMode都会命中同一个scalemode分支NormalizeKey去下划线并小写未识别的键会被静默忽略不影响已识别键生效所以在update_panel_settings中「一个属性都没生效」时才会报错。遗留简写scale_mode与reference_resolution两个顶层参数仍被支持见 test_manage_ui.py 的断言但当传入settings字典时字典优先、简写被跳过。示例# 创建 ScaleWithScreenSize 面板 manage_ui( actioncreate_panel_settings, pathAssets/UI/GamePanelSettings.asset, scale_modeScaleWithScreenSize, reference_resolution{width: 1920, height: 1080} ) # 或推荐写法用 settings 字典一次性配置 manage_ui( actioncreate_panel_settings, pathAssets/UI/GamePanelSettings.asset, settings{ scaleMode: ScaleWithScreenSize, referenceResolution: {width: 1920, height: 1080}, screenMatchMode: MatchWidthOrHeight, match: 0.5, colorClearValue: #000000 } ) # 挂载时指定自定义 PanelSettings manage_ui( actionattach_ui_document, targetUIRoot, source_assetAssets/UI/MainMenu.uxml, panel_settingsAssets/UI/GamePanelSettings.asset )3.6get_visual_tree检查运行时视觉树对目标 GameObject 上的 UIDocument 视觉树做深度优先序列化ManageUI.cs返回每个节点的typeC# 类型名、name、classes、textTextElement 才有、以及resolvedStyle含 width、height、color、backgroundColor、fontSize非默认值才输出颜色为#RRGGBBAA十六进制max_depth控制遍历深度默认 10超过深度时以childCounttruncated: true截断提示若目标没有 UIDocument 或视觉树尚未构建返回明确的错误/空树提示。这是 AI 确认「UI 到底长什么样」的关键动作——先get_visual_tree拿到结构再据此modify_visual_element。3.7modify_visual_element运行时改元素按element_nameUXML 的name属性在视觉树中用root.Q(elementName)查找元素并就地修改ManageUI.cs。支持的修改项文本text仅 Label/Button 等TextElement支持其他元素报错class 操作add_classes去重后添加、remove_classes、toggle_classes内联样式style字典支持backgroundColor/background-color、color、fontSize/font-size、width、height、opacity、display、visibility、flexGrow/flex-grow、flexShrink/flex-shrink、四边margin*、四边padding*、borderRadius/border-radius四角统一设置。未知样式键不会让调用失败而是记入skipped列表并提示见 ApplyInlineStyles状态enabledSetEnabled、visible映射为display: Flex/None、tooltip。响应中返回modifications实际生效项列表、currentClasses、elementType若没有任何修改项生效会返回错误并给出可用参数提示。此 action 是「AI 实时调 UI」的核心无需改文件、无需重新导入立即作用于运行中的视觉树。manage_ui( actionmodify_visual_element, targetUIRoot, element_nameplay-btn, textSTART, add_classes[highlight], toggle_classes[menu-button], style{backgroundColor: #FF0000, fontSize: 24}, enabledTrue, tooltipClick to start )3.8render_ui截图自评编辑器与运行模式两套机制render_ui把 UI 面板渲染成 PNG 截图供 AI 自评界面效果。实现位于 ManageUI.cs其关键约束与行为运行模式Play Mode由于PanelSettings.targetTexture在同一帧内赋值后无法同步读取工具采用协程两段式截图第一次调用通过ScreenshotCapturer.Begin排队一帧WaitForEndOfFrame屏幕捕获含 UI Toolkit 覆盖层返回pendingtrue与提示「Call render_ui again to retrieve the rendered image」第二次调用时取出保存的 PNG写入文件并返回hasContenttrue与图片数据。同一时间只允许一个捕获在途重复发起会返回capture_in_progress错误附retry_after_ms: 100。编辑器模式Editor Mode为 PanelSettings 创建/复用RenderTexture作为资源保存在Assets/UI/RT_MCP_UI_Render_*.renderTexture并按s_panelRTs字典按 PanelSettings 实例 ID 缓存targetTexture赋值后强制重绘首次赋值当帧内容为空响应会提示「Call render_ui again to capture the rendered UI」读取成功后把targetTexture置回 null 恢复屏幕渲染。该模式为尽力而为可能返回空白图hasContentfalse提示「no visible content detected」。不传target时可通过path传 UXML 路径直接渲染工具内部创建隐藏临时 GameObject__MCP_UI_Render_Temp__挂载 UIDocument用完后销毁。通用输出行为分辨率由width默认 1920/height默认 1080控制输出目录解析顺序output_folder参数 → 编辑器偏好ScreenshotPreferences→ 内置默认Assets/Screenshots文件名默认ui-render-{yyyyMMdd-HHmmss}.pngscreenshot_file_name可覆盖自动补.png重名自动追加-1、-2后缀include_imagetrue时在响应中内联 base64 PNG超过max_resolution默认 640时先降采样同时返回path项目相对路径、fullPath、width、height、hasContent命中 Assets 目录时自动AssetDatabase.ImportAsset以便资源管理器可见。# 第一次调用排队捕获Play Mode result manage_ui(actionrender_ui, targetUIRoot, width1280, height720) # - {pending: true, note: A screen capture was scheduled...} # 第二次调用取回 PNG result manage_ui(actionrender_ui, targetUIRoot, width1280, height720, include_imageTrue, max_resolution480, screenshot_file_namemy-preview, output_folderAssets/Screenshots) # - {path: Assets/Screenshots/my-preview.png, hasContent: true, # imageBase64: ..., imageWidth: ..., imageHeight: ...}3.9list发现 UI 资源按filter_typeuxml/uss/PanelSettings或省略全部与path作用域默认Assets搜索资源ManageUI.cs底层使用AssetDatabase.FindAssets(t:VisualTreeAsset / t:StyleSheet / t:PanelSettings)支持page_size默认 50与 1 基page_number分页响应包含total、pageSize、pageNumber、assets每项含path、type、name。# 列出全部 UI 资产 result manage_ui(actionlist) # 只列 USS分页查看第 2 页 result manage_ui(actionlist, filter_typeuss, page_size20, page_number2)四、源码级机制调用路由与安全边界4.1 读操作与写操作走不同通道manage_ui在 Python 侧把 action 分为两类manage_ui.py变更类mutationcreate、update、delete、attach_ui_document、detach_ui_document、create_panel_settings、update_panel_settings、render_ui、link_stylesheet、modify_visual_element—— 走send_mutation只读类ping、read、get_visual_tree、list—— 走send_with_unity_instance(async_send_command_with_retry, ...)。集成测试 test_manage_ui.py 专门验证了这种路由read走非变更路径、create走变更路径且None参数会被完全剔除不会进入发送给 Unity 的参数包。4.2 双端路径校验防穿越、限 Assets无论是 Python 侧os.path.normpath后检查..段、首段必须为assets、扩展名白名单还是 Unity 侧AssetPathUtility.SanitizeAssetPathValidExtensions都对path做了严格约束。测试覆盖了「路径在 Assets 之外」「Assets/../etc/passwd.uxml穿越」「非法扩展名」三种场景test_manage_ui.py。这意味着 AI 无法通过manage_ui在项目外写入任意文件安全边界由工具本身强制保证。4.3 资源生命周期管理ManageUI类在静态构造时注册了EditorApplication.quitting与AssemblyReloadEvents.beforeAssemblyReload回调统一清理缓存的所有 RenderTextureCleanupRenderTextures释放、按资产路径删除或DestroyImmediate避免域重载/退出时泄漏ManageUI.cs。五、实战组合拳一个完整的主菜单制作流程把上面的能力串起来一套「AI 从零建主菜单」的完整调用序列摘自 workflows.md 并补充 render_ui 自评环节# ① 建 UXML 结构含 ui:Style 前缀的样式引用 manage_ui(actioncreate, pathAssets/UI/MainMenu.uxml, contentsui:UXML xmlns:uiUnityEngine.UIElements xmlns:uieUnityEditor.UIElements ui:Style srcAssets/UI/MainMenu.uss / ui:VisualElement nameroot classroot-container ui:Label textMy Game classtitle / ui:Button textPlay nameplay-btn classmenu-button / ui:Button textSettings namesettings-btn classmenu-button / ui:Button textQuit namequit-btn classmenu-button / /ui:VisualElement /ui:UXML) # ② 建 USS 样式 manage_ui(actioncreate, pathAssets/UI/MainMenu.uss, contents.root-container { flex-grow: 1; justify-content: center; align-items: center; background-color: rgba(0, 0, 0, 0.8); } .title { font-size: 48px; color: white; -unity-font-style: bold; margin-bottom: 40px; } .menu-button { width: 300px; height: 60px; font-size: 24px; margin: 8px; background-color: rgb(50, 120, 200); color: white; border-radius: 8px; } .menu-button:hover { background-color: rgb(70, 140, 220); }) # ③ 挂 UIDocument 到场景 GameObject省略 panel_settings 自动创建默认面板 manage_gameobject(actioncreate, nameUIRoot) manage_ui(actionattach_ui_document, targetUIRoot, source_assetAssets/UI/MainMenu.uxml) # ④ 检查视觉树 manage_ui(actionget_visual_tree, targetUIRoot, max_depth5) # ⑤ 运行时微调把 Play 按钮文本改掉并高亮 manage_ui(actionmodify_visual_element, targetUIRoot, element_nameplay-btn, textSTART, add_classes[highlight]) # ⑥ 截图自评Play Mode 需调用两次编辑器模式首次可能空白重试一次 manage_ui(actionrender_ui, targetUIRoot, width1280, height720, include_imageTrue) manage_ui(actionrender_ui, targetUIRoot, width1280, height720, include_imageTrue) # ⑦ 收尾卸载 UIDocument、删除资源 manage_ui(actiondetach_ui_document, targetUIRoot) manage_ui(actiondelete, pathAssets/UI/MainMenu.uss)六、常见报错与排查指引现象原因与对策Invalid file extension .cs. Must be .uxml or .uss.create/read/update/delete只接受.uxml/.uss检查path扩展名path must be under Assets//path must not contain traversal sequences路径必须以Assets/开头且禁止..穿越File already exists at ... Use update action to overwrite.create遇到已存在文件改用updateFile not found: ... Use create action for new files.update遇到不存在文件先createUXML validation failed — file was NOT written. ...UXML 是畸形 XMLUnity 侧在写盘前拦截按行列号修复Could not find target GameObject: ...target名称/路径无法被 ObjectResolver 解析GameObject ... has no UIDocument component.目标上未挂UIDocument先attach_ui_documentVisual element with name ... not found in the visual tree.element_name与 UXML 中name属性不一致先get_visual_tree确认Cannot capture: another capture is already in progress.Play Mode 下同时只有一个截图在途稍等retry_after_ms: 100再调No recognised properties were applied. Check the key names.update_panel_settings的settings键全部未识别对照第三节键表UI Builder 打不开生成的 UXML检查是否用了裸Style必须ui:Style工具已自动注入editor-extension-mode且用 UTF-8 无 BOM 写入可先排除这两个因素七、扩展阅读工具完整签名与自动生成文档manage_ui 参考文档Python 侧定义与参数路由Server/src/services/tools/manage_ui.pyUnity 侧 14 种 action 的完整实现MCPForUnity/Editor/Tools/ManageUI.cs参数路由与 base64 编码的集成测试Server/tests/integration/test_manage_ui.pyUI 体系选型与完整工作流unity-mcp-skill/references/workflows.md、unity-mcp-skill/references/tools-reference.md工具分组说明website/docs/guides/tool-groups.md。综上所述manage_ui把 UI Toolkit 的「文件、挂载、检查、修改、截图」全链路暴露给 AI既有前端式的 UXML/USS 文件工作流也有运行时视觉树检查与元素级修改还内置了截图自评能力与双端安全校验。结合仓库源码理解其底层实现后你可以放心地在自动化管线中用它完成 UI 的创建、迭代与回归验证。【免费下载链接】unity-mcpUnity MCP acts as a bridge between AI assistants and your Unity Editor. Give your LLM tools to manage assets, control scenes, edit scripts, and automate tasks within Unity.项目地址: https://gitcode.com/GitHub_Trending/un/unity-mcp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表