Cesium for Unity Credits显示异常:Play模式下的UI初始化与Canvas渲染问题解决
1. 项目概述一个看似微小却影响深远的“顽疾”如果你正在使用Cesium for Unity开发一个需要发布到WebGL或PC/Mobile平台的3D地理空间应用那么你很可能在Play模式下遇到过这个令人头疼的问题Cesium Credits版权信息显示异常。具体表现通常是在Unity编辑器的Scene视图中Credits信息框那个显示数据来源的小黑框正常显示但一旦你点击Play按钮进入运行模式这个框要么彻底消失要么位置错乱、闪烁甚至导致UI布局被破坏。这绝不是一个简单的“显示瑕疵”它直接关系到项目的合规性——Cesium要求在使用其服务或数据时必须在应用中清晰展示Credits信息。不解决它你的项目就无法合规上线。我最近在一个大型数字孪生项目中就踩进了这个坑。项目需要集成高精度地形和影像Cesium for Unity是核心依赖。在编辑器里一切完美但一进入Play模式Credits就“神隐”了。这让我不得不停下功能开发专门花时间进行技术攻坚。经过一番深度挖掘和调试我发现这背后是Unity运行时UI系统、Cesium插件内部初始化逻辑以及Canvas渲染顺序三者交织产生的一个典型问题。本文将彻底拆解这个问题的根源并提供一套从原理到实践的完整解决方案确保你在任何模式下都能稳定、合规地展示Credits。2. 问题根因深度剖析为什么Play模式是“重灾区”要解决问题必须先理解问题。Cesium for Unity的Credits显示异常其根源在于Unity编辑器模式Edit Mode与运行模式Play Mode下游戏对象和组件生命周期管理的根本差异。这不是一个Bug而是一个需要正确处理的“特性”。2.1 Unity运行时生命周期与编辑器预览的差异在Unity编辑器的Scene视图或Game视图中非Play模式我们看到的场景是一种“预览”状态。此时很多组件的Awake()、Start()方法并不会被调用或者调用时机与运行时完全不同。Cesium for Unity的CesiumCreditController或类似命名的Credits管理组件很可能依赖这些生命周期方法来初始化其显示逻辑例如查找Canvas、实例化Credit预制体、设置初始位置等。当你按下Play按钮Unity会重新加载场景所有游戏对象都会经历完整的运行时生命周期Awake()-OnEnable()-Start()。在这个过程中如果Credits组件的初始化代码假设了某些在编辑器预览状态下已经存在的条件比如某个特定的Canvas已经处于激活状态且层级正确而这些条件在运行时初始化的瞬间并不满足就会导致初始化失败。2.2 Canvas渲染模式与相机匹配的陷阱Cesium Credits通常被设计为屏幕空间UIScreen Space - Overlay 或 Screen Space - Camera。这里隐藏着一个关键点Screen Space - Overlay这种模式的UI直接渲染在屏幕最上层独立于场景相机。但它对Canvas的渲染顺序Sort Order极其敏感。如果Credits Canvas的Sort Order设置过低它可能会被项目中其他UI如你的游戏主界面、Loading图所覆盖。Screen Space - Camera这种模式需要指定一个渲染相机Render Camera。在Play模式下如果代码中动态切换了主相机或者指定的相机在Credits初始化时还未被正确赋值那么Credits的UI将无法被渲染到屏幕上。在编辑器非Play模式下我们通常使用一个默认的“预览相机”来查看Scene这个相机设置可能与运行时使用的相机比如你的Main Camera不同。Credits组件在编辑器下可能恰好与预览相机匹配成功而到了运行时由于相机引用丢失或不匹配导致渲染失败。2.3 Cesium子系统的异步初始化时序Cesium for Unity本身是一个复杂的系统它包含地形、影像、几何体等多个子系统。Credits信息的生成和显示依赖于这些子系统是否已经加载了需要声明版权的数据例如使用了Cesium ion的资产或自带的示例数据。这个加载过程往往是异步的。在Play模式下场景启动时Cesium数据加载和Credits UI的初始化可能在同一帧发生但执行顺序无法保证。可能出现的情况是Credits UI组件已经尝试去显示信息了但负责收集Credit条目的Cesium核心模块还没有准备好导致UI组件获取到一个空列表进而认为自己无事可做便隐藏或销毁了自己。注意不要试图在编辑器里通过拖拽调整Credits预制体的位置来“解决”Play模式的问题。编辑器预览状态下的变换Transform信息在场景进入Play模式重载时会首先被预制体资产或场景中保存的初始值覆盖。你在预览状态下的调整只是临时的不会被保存到运行时的初始状态中。3. 系统性解决方案从配置到代码的完整修复流程理解了根源我们就可以制定一个系统性的解决方案。这个方案不是单一的一行代码修复而是一套组合拳涵盖了项目设置、场景配置和必要的脚本逻辑。3.1 第一步检查与规范Canvas设置这是最基础也是最容易忽略的一步。定位Credits Canvas在Hierarchy中找到显示Cesium Credits的Canvas。它通常被命名为CesiumCredits或类似并且是作为CesiumGeoreference或CesiumCreditController对象的子物体。确认渲染模式检查Canvas组件上的Render Mode。如果为Screen Space - Overlay请确保其Sort Order值设置得足够大例如999以保证它显示在所有其他UI之上。同时检查Canvas Scaler的设置是否与项目UI缩放策略匹配。如果为Screen Space - Camera请务必检查Render Camera字段是否被正确赋值。最佳实践是不要在这里直接拖拽引用因为运行时相机可能动态生成。我们将在代码中处理这个问题。检查Canvas状态确保该Canvas游戏对象在场景启动时处于激活Active状态。有些工作流可能会在初始化时禁用Canvas待需要时再启用这需要精确的时序控制。3.2 第二步创建稳健的Credits初始化脚本我们需要一个脚本来确保Credits系统在运行时被可靠地初始化。这个脚本应该挂载在Credits Canvas或其父物体上。using UnityEngine; using UnityEngine.UI; // 如果Credits是Text或Image // 引入Cesium命名空间具体名称请查看你的Cesium for Unity版本 // using CesiumForUnity; public class CesiumCreditsRuntimeInitializer : MonoBehaviour { [Header(渲染相机 (Screen Space - Camera模式使用))] public Camera targetCamera; // 可以留空在Start中自动查找 [Header(Canvas配置)] public Canvas creditsCanvas; [Tooltip(Overlay模式下的渲染排序顺序)] public int canvasSortOrder 999; private void Start() { if (creditsCanvas null) { creditsCanvas GetComponentCanvas(); if (creditsCanvas null) { Debug.LogError(CesiumCreditsRuntimeInitializer: 未找到Canvas组件, this); return; } } // 1. 处理相机引用 if (creditsCanvas.renderMode RenderMode.ScreenSpaceCamera) { if (targetCamera null) { // 尝试查找标签为MainCamera的相机 targetCamera Camera.main; if (targetCamera null) { Debug.LogWarning(未找到Main Camera尝试查找任何激活的相机。); targetCamera FindAnyObjectByTypeCamera(); } } if (targetCamera ! null) { creditsCanvas.worldCamera targetCamera; Debug.Log($已为Credits Canvas设置渲染相机: {targetCamera.name}); } else { Debug.LogError(无法为Screen Space Camera模式的Canvas找到有效的渲染相机考虑切换到Overlay模式。); } } // 2. 设置渲染顺序 (对Overlay模式至关重要) if (creditsCanvas.renderMode RenderMode.ScreenSpaceOverlay) { creditsCanvas.sortingOrder canvasSortOrder; Debug.Log($已设置Credits Canvas的SortingOrder为: {canvasSortOrder}); } // 3. 强制启用Canvas确保它处于活动状态 if (!creditsCanvas.gameObject.activeInHierarchy) { creditsCanvas.gameObject.SetActive(true); Debug.Log(Credits Canvas被激活。); } // 4. 【关键】延迟一帧确保Cesium系统就绪 // Cesium的Credit数据可能在Start之后才填充完毕。 StartCoroutine(EnableCreditsAfterFrame()); } private System.Collections.IEnumerator EnableCreditsAfterFrame() { // 等待一帧让所有组件的Start()方法都执行完毕 yield return null; // 再次确认Canvas激活并尝试触发Cesium Credit组件的刷新 // 这里假设Credits的显示由一个MonoBehaviour控制我们可以获取它并调用一个公共方法。 var creditDisplay creditsCanvas.GetComponentInChildrenICesiumCreditDisplay(); // 这是一个假设的接口 // 或者更通用的方法直接查找Cesium相关的控制器并尝试启用/刷新 // 例如FindObjectOfTypeCesiumCreditController()?.RefreshDisplay(); Debug.Log(Cesium Credits延迟初始化完成。); } }脚本要点解析相机动态赋值解决了Screen Space - Camera模式因相机引用丢失导致的渲染问题。Sort Order显式设置解决了Screen Space - Overlay模式被其他UI覆盖的问题。状态强制确认确保Canvas对象是激活的。延迟初始化这是最关键的一步。通过yield return null等待一帧确保Cesium内部的数据加载和Credit信息收集流程已经完成再尝试显示UI。这解决了因初始化时序竞争导致Credit列表为空的问题。3.3 第三步配置Cesium Georeference与Credit控制器Cesium for Unity的核心是CesiumGeoreference对象。Credits通常与它关联。在场景中找到CesiumGeoreference对象。检查其下是否存在CesiumCreditController或类似组件。如果没有可能需要查看Cesium for Unity的文档了解当前版本如何管理Credits。如果存在这样的控制器在Inspector中检查其配置Credit Canvas Prefab确认引用的预制体是否正确。Display Credits确保这个复选框在Play模式下也是勾选的。有时脚本可能会在运行时修改这个值。实操心得一个常见的误区是开发者认为只要在编辑器里看到Credits运行时就没问题。实际上务必在CesiumGeoreference或相关数据源如Cesium3DTileset加载了实际数据后再进入Play模式测试。用一个空场景测试Credits是没有意义的因为Credit信息来源于数据属性。3.4 第四步处理WebGL等平台的特别注意事项如果你的目标平台是WebGL问题可能会更加复杂因为涉及到浏览器的同源策略、Cesium ion的令牌验证等。Cesium ion令牌确保你的CesiumIonServer配置正确并且令牌Token有效且具有访问相应资产的权限。无效的令牌会导致数据加载失败进而Credit信息无法生成。信用信息异步加载在WebGL平台网络请求是异步的。Credits信息的获取可能比在编辑器下更慢。因此上述初始化脚本中的“延迟一帧”可能不够可能需要改为“延迟一小段时间”或“监听Cesium数据加载完成事件”。控制台错误打开浏览器的开发者控制台F12查看是否有关于Cesium、网络请求或Canvas渲染的错误信息。这些是排查WebGL下Credit问题的最直接线索。4. 高级调试与问题排查实录即使按照上述步骤操作在某些复杂项目中问题可能依然存在。下面是我在实战中总结的排查清单和技巧。4.1 系统化排查清单当你遇到Credits不显示时请按顺序检查以下项目排查步骤检查内容预期结果与修复方法1. 基础状态Credits Canvas游戏对象在Hierarchy中是否激活Active在Play模式下观察Hierarchy该对象应显示为亮色。如果变灰检查是否有脚本在Start或Awake中禁用了它。2. 组件完整性Canvas组件、Graphic Raycaster组件是否存在且启用确保Canvas组件未被意外移除Raycaster的勾选状态正常。3. 渲染模式Canvas的Render Mode是什么对应的设置是否正确Overlay检查Sorting Order。Screen Space - Camera检查World Camera字段是否为空或指向错误相机。使用初始化脚本动态赋值。4. 层级覆盖是否有其他Canvas的Sorting Order更大覆盖了Credits调整Credits Canvas的Sorting Order至最大如999或调整其他UI的Order。5. Cesium数据Cesium3DTileset或CesiumImagery等数据源是否成功加载观察Scene视图或游戏窗口地形/影像应正常显示。数据加载失败会导致无Credit可显示。检查ion令牌和网络。6. 控制器状态CesiumCreditController或等效组件的Display Credits属性在运行时是否为true在Play模式下暂停游戏选中该控制器在Inspector中确认其状态。可能有其他脚本在运行时修改了它。7. 初始化时序Credit UI的初始化是否早于Cesium数据就绪在初始化脚本中使用StartCoroutine延迟启用或刷新Credit显示如方案所示。8. 平台特异性是否为WebGL平台浏览器控制台是否有错误检查CORS错误、网络错误、ion认证错误。确保WebGL模板能正确处理Cesium的JavaScript交互。4.2 实用调试技巧使用Debug.Log进行标记在Credits初始化脚本的AwakeStart以及你怀疑可能被调用的OnEnable方法中添加Debug.Log(“XXX方法被调用”)。通过观察控制台输出的顺序你可以清晰看到运行时初始化的时序。在Play模式下检查组件属性这是Unity调试的利器。进入Play模式当Credits不显示时直接在Hierarchy中选择Credits Canvas和CesiumCreditController。在Inspector窗口中你可以实时看到所有字段的运行时值显示为粗体这与编辑器下的预设值进行对比能立刻发现哪些值被脚本修改了。检查Rect Transform有时Credits的UI元素如一个显示文字的Text组件的Rect Transform尺寸可能为0或者锚点Anchors设置得非常奇怪导致它被“挤”到屏幕外。在Play模式下检查其Rect Transform组件的宽高和位置。隔离测试创建一个全新的、干净的场景。只放入CesiumGeoreference、一个Cesium3DTileset使用有效的ion资产和Credits Canvas。然后进入Play模式测试。如果这样能正常显示说明问题出在你主场景的某些其他系统如自定义的UI管理器、场景加载器与Cesium产生了冲突。5. 预防措施与最佳实践解决一次问题很重要但建立规范防止问题再次发生更重要。将Credits Canvas设为预制体不要直接在场景中摆弄Credits Canvas的实例。将它制作成一个完整的预制体Prefab这个预制体应该包含配置好的Canvas、所有必要的子UI元素以及我们编写的CesiumCreditsRuntimeInitializer脚本。这样在任何新场景中你只需要实例化这个预制体就能获得一个行为可预测的Credits系统。建立场景初始化顺序在复杂的项目架构中使用一个GameManager或SceneController脚本来管理关键系统的启动顺序。确保Cesium地理参考系统、数据加载系统先于UI系统尤其是Credits UI完成其核心初始化。编写Credits显示/隐藏的接口不要直接通过SetActive(true/false)来控制Credits Canvas。而是封装一个方法例如UIManager.Instance.ShowCesiumCredits()在这个方法内部处理显示逻辑并可以添加日志、条件判断如是否已加载Cesium数据等。这提高了代码的可维护性和可调试性。文档化你的解决方案在项目的技术文档或README中记录下“Cesium Credits Play模式显示问题”的解决方案。这对于团队协作以及未来可能接手项目的开发者至关重要能避免他们重复踩坑。经过这一套从原理分析到实操解决再到系统化排查和预防的完整流程Cesium for Unity在Play模式下的Credits显示异常问题就从一個令人沮丧的“黑盒”故障变成了一个可理解、可控制、可解决的技术环节。记住在实时图形和复杂插件集成开发中理解运行时与编辑器的差异掌控好初始化时序是解决大部分诡异问题的万能钥匙。

相关新闻

AI应用工程化:从框架搭建到业务落地的Harness实践指南

AI应用工程化:从框架搭建到业务落地的Harness实践指南

1. 项目概述:从“搭轨道”到“摆寿司”的工程哲学最近在跟几个做AI应用开发的朋友聊天,发现大家聊到“Harness”这个词时,总有种微妙的错位感。有人觉得Harness就是个框架,把大模型、Agent、Workflow这些组件像乐高一样拼起来就完…

2026/8/20 8:00:16 阅读更多 →
基于 YOLOv8 的智能焊接缺陷检测系统(全套源码+数据集)

基于 YOLOv8 的智能焊接缺陷检测系统(全套源码+数据集)

本系统针对工业焊接质量检测场景,在 YOLOv8 基础上进行算法改进,实现焊接缺陷的智能识别与检测,并提供完整的桌面端可视化界面。 一、数据集 1.1 基本信息 项目内容数据集名称The Welding Defect Dataset - v2任务类型目标检测标注格式YOLO …

2026/8/21 13:56:32 阅读更多 →
终极Steam游戏独立运行指南:3分钟实现免平台启动的完整教程 [特殊字符]

终极Steam游戏独立运行指南:3分钟实现免平台启动的完整教程 [特殊字符]

终极Steam游戏独立运行指南:3分钟实现免平台启动的完整教程 🎮 【免费下载链接】Steam-auto-crack Steam Game Automatic Cracker 项目地址: https://gitcode.com/gh_mirrors/st/Steam-auto-crack 你是否曾经因为Steam服务器宕机而无法启动自己购…

2026/8/17 8:08:01 阅读更多 →

最新新闻

基于NeuroRebuild动态增量重建的智慧海关全场景数字孪生监管技术白皮书

基于NeuroRebuild动态增量重建的智慧海关全场景数字孪生监管技术白皮书

摘要 智慧海关建设是口岸治理现代化、贸易通关便利化、国门风险精准防控的核心支撑,当前传统海关监管普遍面临静态模型固化、场景更新滞后、感知数据割裂、三维推演缺失、风险预判不足、人工建模成本高昂的行业痛点。传统数字孪生依赖人工建模、离线烘焙、静态固化…

2026/8/22 22:53:17 阅读更多 →
Python asyncio.to_thread 实战:在协程里调用阻塞库不卡住事件循环

Python asyncio.to_thread 实战:在协程里调用阻塞库不卡住事件循环

Python asyncio.to_thread 实战:在协程里调用阻塞库不卡住事件循环 写了个 FastAPI 接口,里面调了一个只有同步版本的 SDK(比如某个老牌的图像处理库或数据库驱动),压测时 QPS 惨不忍睹,而且并发一上来所有请求都卡住。问题不在那个库慢,而在于你在协程里直接调了阻塞函数,把整…

2026/8/22 22:53:17 阅读更多 →
【极简编程智能体 Pi Agent】 自定义扩展与高级技巧:打造专属 AI 编程工作流

【极简编程智能体 Pi Agent】 自定义扩展与高级技巧:打造专属 AI 编程工作流

文章目录 一、Pi 扩展系统概览 1.1 扩展能做什么? 1.2 扩展加载位置 1.3 可用导入包 二、编写第一个扩展 2.1 基本结构 2.2 异步工厂函数 2.3 扩展组织方式 三、扩展事件系统详解 3.1 生命周期全景 3.2 关键事件详解 四、注册自定义工具 五、Skills 技能系统 5.1 什么是 Skill…

2026/8/22 22:53:17 阅读更多 →
AI做销售是神器还是坑?我亲测三个月告诉你

AI做销售是神器还是坑?我亲测三个月告诉你

标题 AI做销售,到底是真香还是智商税? 正文 说实话, 去年, 当我着手开始认真去琢磨AI做销售这件事情的时候, 我的心里实际上是挺打鼓的。 身边有好多同行都在进行尝试了, 其中一些人兴奋到了极点, 声称效率提升了好几倍;而另外一些人则不停地…

2026/8/22 22:53:17 阅读更多 →
HMCL 启动器实战:从零开始在 10 分钟内跑通一个 Minecraft 模组整合包

HMCL 启动器实战:从零开始在 10 分钟内跑通一个 Minecraft 模组整合包

HMCL 启动器实战:从零开始在 10 分钟内跑通一个 Minecraft 模组整合包 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL 刚装机就栽跟头:装…

2026/8/22 22:53:17 阅读更多 →
OpenBoardView:免费 .brd 查看器

OpenBoardView:免费 .brd 查看器

OpenBoardView:免费 .brd 查看器 【免费下载链接】OpenBoardView View .brd files 项目地址: https://gitcode.com/gh_mirrors/op/OpenBoardView 刚拿到客户发来的 .brd 文件,你最想确认的往往是供电区域布局和可疑元件的位置——可你手头那个用了…

2026/8/22 22:52:17 阅读更多 →

日新闻

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

在电子硬件开发领域,PCB(印制电路板)的沉金工艺是提升产品可靠性和焊接质量的关键环节。对于需要高密度互连、长期稳定运行或高频信号传输的板卡,如“黍姐仿通行证”这类可能涉及身份识别、数据交互的硬件项目,选择正确…

2026/8/22 0:00:11 阅读更多 →
电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

这次我们来看一个针对电气考研电路科目的学习规划项目。它不是软件工具,而是一套聚焦于8月份关键节点的备考策略。对于电气工程考研的同学来说,电路分析是专业课的重中之重,也是拉开分差的关键。进入8月,复习进入强化阶段&#xf…

2026/8/22 0:00:11 阅读更多 →
消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

大家好,我是专注于前端开发与AI工具实践的技术博主。在日常使用 Claude Code 等AI编程助手时,你是否也遇到过这样的困扰:生成的代码功能上没问题,但代码风格、组件设计、交互逻辑总透着一股“AI味”——布局单调、样式简陋、交互生…

2026/8/22 0:00:11 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/8/21 6:07:56 阅读更多 →

月新闻

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

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

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

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

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

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

2026/8/22 7:31:03 阅读更多 →
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/22 3:22:48 阅读更多 →