Unity UI拖动变框选问题:从事件系统到脚本优化的完整解决方案
1. 问题现象与核心痛点剖析最近在Unity项目里一个困扰了我好几天的UI交互问题终于解决了。具体表现是在Unity编辑器的Game视图或Scene视图中当你尝试用鼠标拖动一个UI元素比如一个按钮、一个面板时它并没有像预期那样平滑地移动而是变成了一个“框选”操作——鼠标拖拽的轨迹会形成一个矩形选择框仿佛你在框选多个对象。更让人头疼的是有时候UI元素会“卡”在某个位置或者移动起来一顿一顿的完全破坏了流畅的编辑体验。这个问题在团队协作中尤其突出因为不同成员、不同版本的Unity编辑器表现可能不一致导致沟通成本剧增。这绝不仅仅是一个操作不便的小毛病。对于UI设计师和前端开发者而言流畅、精确的UI布局是基础生产力。当拖动变成框选意味着你无法快速调整元素位置对齐工具变得难以使用整个UI搭建流程的效率会直线下降。尤其是在制作复杂的自适应界面或者需要像素级对齐时这个问题足以让人抓狂。从技术层面看这背后通常不是单一原因造成的而是Unity编辑器输入系统、UI事件处理、编辑器设置乃至操作系统交互等多方面因素交织的结果。理解并解决它需要对Unity的UI事件流有一个清晰的认知。2. Unity UI事件系统与输入处理机制深度解析要根治“拖动变框选”的问题我们必须先深入Unity UI事件系统的底层。Unity的UI系统基于EventSystem和一系列Raycaster组件工作。当你点击或拖动一个UI元素时事件流大致如下输入检测操作系统如Windows将鼠标/触摸事件传递给Unity编辑器或运行时。事件系统分发EventSystem通常由StandaloneInputModule或TouchInputModule驱动每帧更新检测当前输入状态。射线投射GraphicRaycaster附加在Canvas上会从鼠标位置发射一条射线检测命中了哪些UI元素。这个过程决定了哪个元素是“被选中的”。事件触发如果检测到有效的UI元素并且该元素上挂载了如EventTrigger、IPointerDownHandler等接口的实现相应的事件如OnPointerDown,OnDrag就会被调用。“拖动变框选”问题的根源往往出现在第2和第3步之间。核心矛盾在于Unity编辑器或运行时错误地将你的“拖动意图”识别为了“框选意图”。在编辑器模式下框选通常是按住鼠标左键并拖动不经过UI元素而直接在空白处或3D物体上操作。但当UI事件处理出现紊乱时对UI元素的拖动操作信号被“劫持”或“误解”了。一个关键角色是UnityEditor.EditorGUIUtility.hotControl。这是一个内部状态标识用于追踪编辑器GUI中哪个控件正在接收输入。如果某个UI控件在拖动开始OnBeginDrag时没有正确设置或清除这个状态就可能导致编辑器的全局输入处理逻辑混乱将后续的鼠标移动解释为视图操作如框选、平移视图而非控件拖动。3. 问题根源的多维度排查清单根据我的经验这个问题可以从以下几个层面由浅入深地进行排查。我建议你按照这个清单顺序操作大部分情况下都能在前几步找到解决方案。3.1 第一层检查编辑器基础设置与操作环境很多时候问题出在最简单的配置或操作习惯上。检查鼠标按键与键盘修饰键确保你拖动时使用的是鼠标左键。Unity中中键拖动通常是平移视图右键拖动是旋转视图在Scene视图而框选操作默认也是左键。但如果你无意中按住了CtrlWindows/Linux或CommandMac键Unity可能会将拖动操作临时切换为加选或减选模式视觉上类似框选但逻辑不同。检查你的键盘确保没有按键卡住。验证Unity编辑器版本与项目设置不同版本的Unity编辑器其输入处理和UI事件系统可能存在细微差异。尝试创建一个全新的空白项目导入有问题的UI Prefab进行测试。如果在新项目中正常则问题可能出在原项目的某些特殊设置或残留的编辑器缓存上。可以尝试清理项目Library文件夹并重新导入。排查操作系统与驱动干扰某些鼠标驱动程序如罗技G HUB、雷云或系统级的辅助功能如Windows的“按住Ctrl键以显示鼠标指针位置”可能会修改或注入鼠标事件干扰Unity的正常接收。尝试更换一个普通鼠标或者暂时禁用所有鼠标增强软件进行测试。确认操作上下文你是在Game视图还是Scene视图中拖动这两个视图的输入处理上下文不同。在Scene视图中如果UI Canvas的Render Mode是Screen Space - Camera或World Space且你的鼠标点击位置恰好没有命中UI而是命中了3D场景那么拖动就会触发Scene视图的导航操作如框选物体。确保你点击的是UI元素的矩形区域内部。3.2 第二层剖析UI组件配置与层级关系如果环境没问题那么问题很可能出在UI元素本身及其相互关系上。RectTransform的锚点与轴心点一个设置不当的RectTransform是罪魁祸首之一。检查UI元素的锚点Anchors是否预设正确。例如如果一个按钮的锚点分散在四个角Stretch模式那么它的位置Pos和大小Size是联动的。在这种情况下拖动你可能会感觉是在调整大小而非移动如果同时触发了编辑器的其他选择逻辑就可能表现为框选。尝试将锚点设置为同一个点如Middle Center再拖动看看。Canvas Render Mode与Raycasting确认你的Canvas的Render Mode。对于Screen Space - Overlay模式UI渲染在最上层通常问题较少。但对于Screen Space - Camera和World Space模式需要确保GraphicRaycaster组件正常工作并且用于射线检测的Camera设置正确。如果射线检测失败UI就无法接收到拖动事件。UI元素的层级与遮挡检查是否有不可见的、完全透明的UI元素如图像组件Image的Alpha为0但Raycast Target仍为true覆盖在你想要拖动的元素之上。这个透明的元素会拦截所有输入事件但它本身可能没有实现拖动逻辑导致事件无法传递下去。在Hierarchy中从上至下检查每个UI元素的Raycast Target属性。EventSystem与Input Module确保场景中有且仅有一个EventSystem游戏对象。检查其上挂载的输入模块例如StandaloneInputModule。查看其属性如Drag Threshold拖动阈值这个值决定了鼠标移动多少像素后才算作“拖动”而非“点击”。如果这个值设置得过大微小的移动可能无法触发拖动事件。3.3 第三层审查自定义脚本与事件处理逻辑这是最复杂但也最常出问题的一层。自定义的拖拽脚本逻辑缺陷是导致“拖动变框选”的高发区。事件接口的实现冲突你的UI元素上可能挂载了多个实现了IBeginDragHandler,IDragHandler,IEndDragHandler接口的脚本。如果这些脚本在处理事件后没有正确调用eventData.Use()或者处理逻辑有冲突就可能导致事件被多个系统处理。EventTrigger组件的滥用使用EventTrigger组件可以方便地绑定事件但如果同时为PointerDown、Drag等事件添加了多个回调且这些回调来自不同的脚本它们之间的执行顺序和相互影响可能产生意想不到的结果。特别是如果某个回调中包含了改变对象选择状态的代码就可能触发编辑器的框选逻辑。与编辑器工具/自定义EditorWindow的冲突如果你正在开发编辑器扩展工具或者场景中存在自定义的EditorWindow这些工具可能监听了全局的鼠标事件。如果它们没有在适当的时候“放手”即重置GUIUtility.hotControl就会持续捕获输入导致主视图的UI操作失灵。协程与异步操作中的状态不同步在拖拽开始的回调中如果启动了协程或异步操作来执行某些逻辑而这些操作意外地修改了UI的状态或输入系统的状态也可能干扰拖拽的连续性。4. 系统性的解决方案与实操步骤基于以上排查我为你梳理了一套从易到难、步步为营的解决方案。请跟随这些步骤操作并观察问题是否解决。4.1 步骤一环境净化与标准化测试创建最小可复现环境在Unity中新建一个空白场景。创建一个Canvas在其下创建一个Image或Button作为测试对象。不要附加任何自定义脚本。测试基础拖拽为这个测试UI元素添加一个EventTrigger组件。在EventTrigger中为Drag事件添加一个简单的监听在回调函数中写入eventData.pointerDrag.transform.position (Vector3)eventData.delta;。运行游戏尝试拖动这个UI。如果此时拖动正常说明问题出在原项目的复杂环境或自定义逻辑上。如果此时就出现框选则问题更底层。检查编辑器布局有时混乱的编辑器窗口布局会导致输入焦点错误。尝试重置Unity编辑器布局Window-Layouts-Default。4.2 步骤二精准配置UI组件属性锁定RectTransform选中出问题的UI元素在Inspector面板的RectTransform组件右上角点击小锁图标。这可以防止在拖动时意外改变其宽高。对于需要频繁拖动的元素这是一个好习惯。简化Raycast目标在Hierarchy中使用Editor-Search Hierarchy功能搜索Raycast Target属性为True的对象。逐一检查将那些不需要响应点击的UI元素如纯装饰性的图片、背景板的Raycast Target关闭。这能有效减少事件传递的复杂度。调整Canvas设置对于Screen Space - Camera模式的Canvas确保GraphicRaycaster的Blocking Objects和Blocking Mask设置合理。通常Blocking Objects设置为All或Three D以防止3D物体阻挡UI射线。4.3 步骤三修复与优化自定义拖拽脚本如果问题出现在自定义脚本中以下是关键的修复点确保正确实现接口并消费事件using UnityEngine; using UnityEngine.EventSystems; public class ProperDraggableUI : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler { private RectTransform rectTransform; private Canvas canvas; void Awake() { rectTransform GetComponentRectTransform(); // 建议缓存Canvas避免频繁查找 canvas GetComponentInParentCanvas(); } public void OnBeginDrag(PointerEventData eventData) { // 可选改变元素外观表示开始拖动 // 关键这里通常不需要调用 eventData.Use()除非你想阻止事件继续向父物体传递 // 但绝对不能在这里做改变编辑器选择状态的操作 } public void OnDrag(PointerEventData eventData) { // 核心将屏幕坐标的移动量转换为Canvas下的坐标移动量 if (canvas ! null) { Vector2 localPos; RectTransformUtility.ScreenPointToLocalPointInRectangle( canvas.transform as RectTransform, eventData.position, canvas.worldCamera, out localPos); // 更平滑的跟随可以考虑使用eventData.delta进行累加 rectTransform.anchoredPosition eventData.delta / canvas.scaleFactor; } // 关键必须调用Use()告知EventSystem此拖拽事件已被处理防止其他默认行为如框选发生 eventData.Use(); } public void OnEndDrag(PointerEventData eventData) { // 恢复元素外观 // 同样可以调用eventData.Use()来明确结束 } }关键点在OnDrag中调用eventData.Use()至关重要它告诉Unity的输入系统“这个拖动事件我已经处理了你不用再把它当作普通的鼠标移动去触发视图操作比如框选了。”避免在拖拽逻辑中操作Selection绝对不要在OnBeginDrag、OnDrag、OnEndDrag中调用Selection.activeGameObject gameObject;或任何可能改变编辑器当前选中对象的代码。这会在编辑模式下直接触发选择状态的改变与拖动操作产生严重冲突。处理多层级Canvas的坐标转换如果你的UI嵌套在多个具有不同渲染模式或缩放因子的Canvas中坐标转换会变得复杂。务必使用RectTransformUtility.ScreenPointToLocalPointInRectangle并传入正确的父级RectTransform和Camera参数确保拖动位置计算准确。4.4 步骤四高级调试与编辑器层修复对于极其顽固的问题可能需要深入编辑器层面。使用EditorGUIUtility.hotControl进行调试在自定义编辑器脚本或运行时通过反射可以打印UnityEditor.EditorGUIUtility.hotControl的值。观察在正常拖动和异常“框选”时这个值的变化。理想情况下你的拖拽控件在开始拖动时应“获取”hotControl在结束时应“释放”它将其设为0。如果发现hotControl被其他未知控件长期占用可能就是问题所在。注意直接操作hotControl需要非常小心且仅适用于编辑器脚本不适用于运行时游戏逻辑。检查是否有第三方插件冲突暂时禁用所有第三方UI插件如DoTween Pro、LeanGUI、MoreEffectiveCoroutines等特别是那些也处理输入或UI动画的插件。逐个启用以定位冲突源。清理并重新生成项目工程文件关闭Unity删除项目根目录下的Library、Temp、Obj文件夹以及.csproj文件。然后重新用Unity打开项目让其重新生成所有文件。这可以解决因元数据meta文件损坏或索引错乱导致的诡异问题。5. 常见疑难场景与独家避坑指南根据我踩过的坑这里有几个特定场景下的问题与解决方案场景一在Editor模式下运行游戏时无法拖动UI但单独发布后正常。原因这很可能是编辑器输入Editor Input与游戏输入Game Input冲突。在Play模式下编辑器本身和运行的游戏都在接收输入。解决尝试在Game视图中点击一下确保输入焦点在Game视图内。或者检查EventSystem的Send Navigation Events属性在编辑器复杂场景下可以尝试关闭它。更根本的方法是确保你的拖拽脚本在OnDrag中调用了eventData.Use()这能有效阻止事件冒泡到编辑器层。场景二只有某个特定的、复杂的Prefab会出现此问题其他UI正常。原因该Prefab内部可能存在嵌套的、带有GraphicRaycaster的Canvas或者有复杂的Layout Group如HorizontalLayoutGroup在拖动时不断尝试重新排列子物体与拖拽位移产生竞争。解决预制件检视模式Prefab Mode下逐一检查其子物体。禁用内部嵌套的Canvas或多余的Raycaster。对于有Layout Group的父物体可以尝试在拖动开始时临时禁用Layout Group拖动结束后再启用。private LayoutGroup parentLayoutGroup; public void OnBeginDrag(PointerEventData eventData) { parentLayoutGroup transform.parent.GetComponentLayoutGroup(); if (parentLayoutGroup ! null) parentLayoutGroup.enabled false; } public void OnEndDrag(PointerEventData eventData) { if (parentLayoutGroup ! null) { parentLayoutGroup.enabled true; // 可能需要调用LayoutRebuilder.ForceRebuildLayoutImmediate来刷新布局 LayoutRebuilder.ForceRebuildLayoutImmediate((RectTransform)parentLayoutGroup.transform); } }场景三在滚动视图ScrollRect内的元素无法拖动一拖动就滚动视图。原因这是ScrollRect的默认行为。ScrollRect本身也监听拖动事件来实现滚动。解决你需要决定这个拖动是用于滚动还是用于移动内部元素。如果是移动内部元素可以为该元素添加一个脚本在OnBeginDrag中调用EventSystem.current.SetSelectedGameObject(gameObject)并eventData.Use()然后可能还需要暂时禁用ScrollRect的拖动功能或者更优雅地通过判断拖动方向来区分意图。场景四使用了新输入系统Input System Package后出现拖动问题。原因新输入系统与旧的StandaloneInputModule不兼容。你需要将EventSystem下的输入模块替换为InputSystemUIInputModule。解决移除StandaloneInputModule组件。添加InputSystemUIInputModule组件。确保在Project Settings-Input System Package中Active Input Handling设置为Both或Input System。新输入系统的动作映射Action Maps需要正确配置UI相关的Point、Click、Drag等Action。最后分享一个我常用的调试技巧在怀疑事件传递有问题时写一个简单的脚本挂在Canvas根节点上实现所有IPointerXXXHandler接口在每个接口函数里用Debug.Log打印事件类型和当前选中的游戏对象。这能让你清晰地看到鼠标按下、拖动、抬起过程中事件到底传递到了哪里是否被正确消费。很多时候问题就出在你看不见的事件传递链上。

相关新闻

JavaScript中的CRUD操作指南示例 - 用DHTMLX创建医院管理系统!

JavaScript中的CRUD操作指南示例 - 用DHTMLX创建医院管理系统!

创建、读取、更新和删除(CRUD)是现代web和移动应用程序执行的四个基本功能。然而这些函数是如何产生的,它们到底是做什么的?在本文中,我们将简要介绍CRUD的含义以及它何时被引入编程的。文中我们还将使用用于医院管理的JavaScript演示应用程序…

2026/8/18 14:48:32 阅读更多 →
企业身份管理困境:Casdoor统一认证平台终极解决方案

企业身份管理困境:Casdoor统一认证平台终极解决方案

企业身份管理困境:Casdoor统一认证平台终极解决方案 【免费下载链接】casdoor An open-source Agent-first Identity and Access Management (IAM) /LLM MCP & agent gateway and auth server with web UI supporting OpenClaw, MCP, OAuth, OIDC, SAML, CAS, L…

2026/8/18 11:49:35 阅读更多 →
Gitee代码提交全流程与最佳实践指南

Gitee代码提交全流程与最佳实践指南

1. Gitee代码提交基础概念Gitee作为国内主流的代码托管平台,其核心功能与GitHub类似但针对国内开发者做了优化。代码提交是日常开发中最频繁的操作之一,理解其完整流程对团队协作至关重要。Git版本控制系统采用分布式架构,每个开发者本地都拥…

2026/8/17 17:57:23 阅读更多 →

最新新闻

抖音视频免费批量下载教程:douyin-downloader 三步跑通无水印保存与自动去重

抖音视频免费批量下载教程:douyin-downloader 三步跑通无水印保存与自动去重

抖音视频免费批量下载教程:douyin-downloader 三步跑通无水印保存与自动去重 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and b…

2026/8/19 12:17:29 阅读更多 →
DFT计算想泡进水里,竟然只改两行INCAR参数?—— VASPsol隐式溶剂模型实操手记

DFT计算想泡进水里,竟然只改两行INCAR参数?—— VASPsol隐式溶剂模型实操手记

DFT计算想泡进水里,竟然只改两行INCAR参数?—— VASPsol隐式溶剂模型实操手记 【免费下载链接】VASPsol Solvation model for the plane wave DFT code VASP. 项目地址: https://gitcode.com/gh_mirrors/va/VASPsol 导师把一沓实验数据推到我面前…

2026/8/19 12:17:29 阅读更多 →
3步清走“此电脑“里的顽固图标:MyComputerManager终极指南

3步清走“此电脑“里的顽固图标:MyComputerManager终极指南

3步清走"此电脑"里的顽固图标:MyComputerManager终极指南 【免费下载链接】MyComputerManager 管理“此电脑”里删不掉的流氓“快捷方式”(包括侧边栏),同时可自己添加这类“快捷方式” 项目地址: https://gitcode.co…

2026/8/19 12:17:29 阅读更多 →
FreeRTOS四种堆内存管理方案详解:从heap_1到heap_5的选型与实战

FreeRTOS四种堆内存管理方案详解:从heap_1到heap_5的选型与实战

1. 从一次内存分配失败说起:为什么FreeRTOS有四种堆? 最近在调试一个基于STM32的FreeRTOS项目时,遇到了一个让我排查了半天的怪现象。项目里有一个任务,会动态创建和删除一些临时数据结构。在测试初期一切正常,但运行几…

2026/8/19 12:17:29 阅读更多 →
抖音批量下载终极指南:从0到1搭建你的视频采集流水线

抖音批量下载终极指南:从0到1搭建你的视频采集流水线

抖音批量下载终极指南:从0到1搭建你的视频采集流水线 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…

2026/8/19 12:17:29 阅读更多 →
免代码改塔科夫存档:SPT-AKI存档编辑器完整上手路线

免代码改塔科夫存档:SPT-AKI存档编辑器完整上手路线

免代码改塔科夫存档:SPT-AKI存档编辑器完整上手路线 【免费下载链接】SPT-AKI-Profile-Editor Программа для редактирования профиля игрока на сервере SPT-AKI 项目地址: https://gitcode.com/gh_mirrors/sp/…

2026/8/19 12:16:28 阅读更多 →

日新闻

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

【单片机课程设计/毕业设计】基于 STM32 与 WiFi 模块的室内通风智能管控系统设计 基于 STM32 的人体存在感知自适应风扇控制系统设计(018503)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/19 0:00:30 阅读更多 →
AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

AI如何驱动数学猜想生成:从大语言模型到自动化数学发现

1. 项目概述:当AI开始“猜”数学定理 最近在AI研究圈里,一个名为“Moonshine”的项目引起了不小的讨论。这名字本身就挺有意思,直译是“月光”,但在数学史上,它特指一个神秘而美丽的联系——魔群月光猜想,连…

2026/8/19 0:00:30 阅读更多 →
WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南

WarcraftHelper 魔兽争霸3优化实战指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 一台刚配的新电脑,跑《魔兽争霸3》却卡成 PPT——这…

2026/8/19 0:02:31 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/19 11:55:18 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/19 9:46:27 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/19 11:55:16 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/19 5:04:55 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/19 7:42:22 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/19 11:55:13 阅读更多 →