Unity集成Spine骨骼动画全流程:从资源导入到性能优化实战
1. 项目概述为什么Unity开发者需要关注Spine如果你是一个Unity开发者无论是做2D游戏、UI动效还是需要大量角色动画的独立项目大概率都听说过或者被“骨骼动画”的效率问题折磨过。传统的序列帧动画一个流畅的转身动作可能需要几十张甚至上百张图片不仅让包体臃肿不堪美术同学改起来更是噩梦。而Spine的出现几乎成了2D骨骼动画的事实标准。它把角色拆解成一个个独立的部件图片通过一套精密的骨骼和蒙皮系统驱动让角色动起来。在Unity里集成Spine意味着你可以用极小的资源开销实现极其丰富、流畅且易于调整的动画效果。但“集成”两个字听起来简单做起来坑可不少。从Spine导出的.json和.atlas文件到在Unity场景里正确播放一个动画中间隔着运行时版本兼容性、渲染设置、动画状态机管理、性能优化等一系列问题。网上教程很多但往往只讲“怎么把模型拖进去”至于为什么这么做、遇到黑屏怎么办、动画播放卡顿怎么优化这些真正影响项目进度的细节却语焉不详。这篇文章我就结合自己多个项目的实战经验从零开始拆解一套在Unity中高效、稳定集成Spine动画的完整流程并分享那些官方文档里不会写的“踩坑”实录。2. 前期准备工具选型与资源规范在动手写第一行代码之前准备工作做得好能避免后续80%的麻烦。这里不仅仅是安装插件那么简单。2.1 Spine编辑器的选择与资源导出首先你需要Spine编辑器来制作动画。官方提供基础版功能受限和付费专业版。对于商业项目支持正版是必须的。在Spine中制作动画时有几个关键点直接影响Unity中的集成效果骨骼与插槽命名规范务必使用清晰、一致的英文命名避免空格和特殊字符。例如bone_arm_L,slot_head。这会在代码控制时带来巨大便利。图片资源图集管理Spine动画的所有部件图片最终会打包成一个图集一张大图和一个记录坐标信息的图集文件。在导出时要特别注意尺寸与格式图集尺寸最好是2的幂次方如1024x1024, 2048x2048以兼容更多GPU和优化内存。图片格式推荐使用PNG带透明度或根据平台选择压缩格式如ASTC, ETC2。空白区域合理设置图集打包参数减少空白区域提高纹理利用率。导出设置这是关键一步。导出时你会得到三个核心文件.json动画数据文件包含骨骼层级、动画关键帧、事件等所有信息。.atlas图集描述文件记录了每个部件图片在大图集中的位置和属性。.png或其他图片格式实际的图集纹理文件。注意确保Spine编辑器的版本与你将要使用的Unity运行时SDK版本大致兼容。虽然高版本SDK通常向下兼容但使用过老的编辑器功能可能导致在新版SDK中无法解析。2.2 Unity环境与Spine运行时SDK导入Unity方面你需要从Spine官网下载对应版本的Unity运行时SDK通常是.unitypackage格式。目前主流版本是Spine-Unity 4.x它支持URP通用渲染管线和HDRP高清渲染管线这是以前版本的一个巨大进步。导入SDK直接将下载的.unitypackage导入你的Unity项目。导入后检查Assets/Spine目录是否完整。渲染管线适配这是新手最容易导致“黑屏”或“粉红材质”的地方。如果是内置渲染管线Built-in导入后一般可以直接使用Spine提供了内置管线专用的Shader。如果是URP你需要额外执行一步操作。在Assets/Spine/Shaders/目录下找到URP文件夹里面通常有一个Spine-URP-Shaders.unitypackage将其导入。然后在Spine骨骼动画的SkeletonGraphic或SkeletonAnimation组件上检查其SkeletonData Asset引用的材质是否使用了正确的URP Shader如Spine/Skeleton。HDRP类似需要导入对应的HDRP Shader包并进行材质切换。基础场景设置创建一个测试场景确保相机是正交Orthographic模式。对于纯2D游戏这是最常用的设置能避免透视变形。3. 核心集成流程从资源到动画播放准备工作就绪现在进入核心的集成环节。这个过程可以分解为资源导入、场景配置、脚本控制三个步骤。3.1 资源导入与SkeletonData Asset创建不要直接将.json和.atlas文件拖入场景。正确的做法是利用Spine SDK提供的工具将它们转换为Unity引擎原生理解的格式。将导出的三个文件.json,.atlas,.png放入项目的Assets目录下例如Assets/Art/Spine/Character。选中.json文件在Unity Inspector窗口中你会看到Spine导入器的界面。点击SkeletonData文件预览框下方的Create或Edit按钮。在弹出的编辑窗口中确保Atlas Files字段正确关联了你的.atlas文件。Spine SDK会自动读取图集信息。点击Apply。此时Unity会在.json文件同级目录下生成一个名为[你的文件名]_SkeletonData.asset的资源文件。这个.asset文件就是Unity中所有Spine动画的数据源它封装了骨骼、动画、图集等所有信息。实操心得建议为每个独立的Spine角色或动画集单独创建一个SkeletonData Asset。不要试图用一个巨大的文件管理所有角色这不利于资源的分批加载和内存管理。3.2 场景中的动画对象创建与配置有了SkeletonData Asset就可以在场景中创建动画实体了。Spine-Unity SDK主要提供两种组件SkeletonAnimation适用于游戏世界中的对象需要挂载在GameObject上通过MeshRenderer进行渲染。这是最常用的组件。在场景中创建一个空GameObject。为其添加SkeletonAnimation组件。将上一步生成的SkeletonData Asset拖拽到组件的Skeleton Data Asset字段。此时Animation Name下拉框会列出该数据资产中包含的所有动画。选择一个点击播放按钮你应该就能在Scene视图和Game视图中看到动画了。SkeletonGraphic专为UGUI系统设计继承自MaskableGraphic可以直接放在Canvas下作为UI元素。非常适合做动态UI、角色立绘等。在Canvas下创建一个空节点。添加SkeletonGraphic组件。同样为其指定SkeletonData Asset。关键配置解析Initial Skin初始皮肤。如果你的Spine角色有多个皮肤如换装可以在这里指定默认皮肤。Initial Animation初始动画。游戏启动时自动播放的动画名称。Loop是否循环播放初始动画。Time Scale动画播放的时间缩放可用于制作慢动作或快进效果。3.3 通过代码控制动画播放拖拽配置只能满足预览需求真正的游戏逻辑需要通过代码控制。SkeletonAnimation和SkeletonGraphic都提供了强大的API。using Spine.Unity; using UnityEngine; public class SpineCharacterController : MonoBehaviour { public SkeletonAnimation skeletonAnimation; // 或者 public SkeletonGraphic skeletonGraphic; // 如果是UI版本 private void Start() { // 确保组件引用正确 if (skeletonAnimation null) skeletonAnimation GetComponentSkeletonAnimation(); // 1. 播放指定动画 // 参数动画名, 是否循环, 轨道索引默认0 skeletonAnimation.AnimationState.SetAnimation(0, run, true); // 2. 添加动画到队列在前一个动画播放完后播放 skeletonAnimation.AnimationState.AddAnimation(0, jump, false, 0); skeletonAnimation.AnimationState.AddAnimation(0, run, true, 0); // 3. 监听动画事件Spine编辑器中设置的事件 skeletonAnimation.AnimationState.Event OnAnimationEvent; // 4. 监听动画完成 skeletonAnimation.AnimationState.Complete OnAnimationComplete; } void OnAnimationEvent(Spine.TrackEntry trackEntry, Spine.Event e) { if (e.Data.Name footstep) { // 播放脚步声效 Debug.Log(触发脚步声事件); } } void OnAnimationComplete(Spine.TrackEntry trackEntry) { Debug.Log($轨道 {trackEntry.TrackIndex} 上的动画播放完成: {trackEntry.Animation.Name}); } // 在Update中或通过输入控制动画切换 void Update() { if (Input.GetKeyDown(KeyCode.Space)) { // 立即切换到攻击动画会打断当前动画 skeletonAnimation.AnimationState.SetAnimation(0, attack, false); // 攻击后自动切回待机 skeletonAnimation.AnimationState.AddAnimation(0, idle, true, 0); } } }代码控制的核心是AnimationState对象。它管理着动画轨道Track、混合Mixing、以及事件。轨道索引允许你分层播放动画例如轨道0播放跑步动作轨道1播放上半身射击动作两者可以混合。4. 高级特性与性能优化实战基础播放实现后要做出高品质的游戏必须掌握高级特性和性能优化技巧。4.1 动画混合与分层控制动画混合是让动作过渡自然的关键。Spine提供了强大的混合功能。// 设置两个动画轨道之间的混合时间 skeletonAnimation.AnimationState.Data.DefaultMix 0.2f; // 全局默认混合时间 // 或者为特定动画对设置混合时间 skeletonAnimation.AnimationState.Data.SetMix(idle, run, 0.1f); skeletonAnimation.AnimationState.Data.SetMix(run, idle, 0.1f);分层控制示例角色边跑边开枪// 轨道0控制下半身跑、跳 skeletonAnimation.AnimationState.SetAnimation(0, run, true); // 轨道1控制上半身 idle, shoot。设置较高的轨道索引使其覆盖下层动画的相应骨骼。 skeletonAnimation.AnimationState.SetAnimation(1, aim, true); // 举枪瞄准 // 当开枪时只影响上半身 if (Input.GetMouseButtonDown(0)) { skeletonAnimation.AnimationState.SetAnimation(1, shoot, false); skeletonAnimation.AnimationState.AddAnimation(1, aim, true, 0); }4.2 皮肤系统与动态换装Spine的皮肤系统允许你动态切换角色外观。在编辑器中创建好不同皮肤如“default”, “armor”, “casual”在代码中可以这样切换// 设置整体皮肤 skeletonAnimation.Skeleton.SetSkin(armor); skeletonAnimation.Skeleton.SetSlotsToSetupPose(); // 刷新插槽姿势 skeletonAnimation.AnimationState.Apply(skeletonAnimation.Skeleton); // 应用动画状态 // 组合皮肤将多个皮肤叠加 skeletonAnimation.Skeleton.SetSkin(base); skeletonAnimation.Skeleton.SetSkin(equipment); // 叠加装备皮肤 // 或者使用Data对象来查找和组合皮肤 var skin new Spine.Skin(combined); skin.AddSkin(skeletonAnimation.Skeleton.Data.FindSkin(base)); skin.AddSkin(skeletonAnimation.Skeleton.Data.FindSkin(weapon)); skeletonAnimation.Skeleton.SetSkin(skin);4.3 性能深度优化策略Spine动画虽然高效但在大量使用如百人同屏时仍需优化。合批Batching这是最重要的优化。Unity的合批条件要求使用相同的材质。Spine的每个SkeletonAnimation默认会生成一个独立的Mesh如果角色使用相同的图集和材质它们不会自动合批。解决方案使用SkeletonRenderer的MeshGenerator设置中的Combine Submeshes选项如果可用或者更高级的做法是使用自定义渲染器将多个骨骼动画合并到一个Mesh中Spine官方示例中有相关代码但较复杂。对于UI版本的SkeletonGraphic合批遵循UGUI的规则使用相同材质球的UI元素会自动合批。CPU性能 - 更新频率Update Mode在SkeletonAnimation组件上将Update Mode从默认的Normal改为FixedUpdate或Manual。FixedUpdate可以锁定动画更新频率避免帧率波动影响动画速度Manual则允许你完全手动控制何时调用skeletonAnimation.Update(deltaTime)适用于需要暂停或同步动画的场景。Late Update如果动画需要跟随其他逻辑更新如物理可以勾选Late Update确保动画在每帧最后更新。内存优化共享SkeletonData Asset同一个角色的多个实例应该共享同一个SkeletonData Asset引用而不是每个实例都复制一份数据。图集复用多个角色共用一套图集可以大幅减少Draw Call和内存占用。在Spine编辑器中规划好资源将通用部件放在同一个图集里。及时销毁当角色被销毁或禁用时确保其占用的动画资源被正确释放。对于动态加载的SkeletonData Asset在不需要时使用Resources.UnloadAsset或通过Addressables/AssetBundle系统进行卸载。GPU Instancing对于大量相同的静态或简单动画角色如背景人群可以考虑使用GPU Instancing。这需要编写自定义Shader并确保所有实例使用相同的Mesh和材质。Spine的标准Shader可能不支持需要自行扩展。5. 常见问题排查与实战避坑指南即使流程正确集成过程中也难免遇到各种“妖魔鬼怪”。下面是我总结的常见问题清单。5.1 问题一模型导入后显示为粉红色或黑色这是着色器Shader问题的典型表现。排查步骤检查项目渲染管线。如果是URP/HDRP确认已导入对应的Spine Shader包。在Project窗口找到你的SkeletonData Asset检查其关联的材质球Material。选中材质球在Inspector中查看其Shader是否为正确的Spine Shader如Spine/Skeleton URP下可能是Spine/URP/Skeleton。如果Shader正确但仍为粉色检查材质球引用的主纹理Main Texture是否丢失。确保图集纹理.png文件已成功导入。5.2 问题二动画播放卡顿、跳帧或不流畅CPU端原因Profile工具定位使用Unity Profiler查看SkeletonAnimation.Update或SkeletonGraphic.Update的耗时。如果耗时很高检查场景中Spine对象数量是否过多。简化骨骼和网格在Spine编辑器中检查是否使用了过于复杂的网格Mesh或过多的骨骼。在不影响效果的前提下尽量简化。减少不必要的更新对于远离相机或不可见的角色可以禁用其SkeletonAnimation组件或整个GameObject。GPU端原因Draw Call过高使用Frame Debugger工具查看Draw Call。如果每个Spine角色都是一个独立的Draw Call说明合批失败。检查它们是否使用了完全相同的材质和图集。图集尺寸过大单张2048x2048的图集在移动端可能已经很大。考虑将角色拆分成多个图集并利用Unity的Sprite Atlas针对UGUI或自定义合批策略。5.3 问题三动画事件Event不触发排查步骤确认事件已添加在Spine编辑器中打开动画时间轴确保在特定帧上添加了事件Event并且事件名称正确。检查代码监听确认代码中是否正确订阅了AnimationState.Event事件并且事件处理函数的签名正确。检查轨道索引确保你监听的事件所在的动画是在你监听的轨道索引上播放的。例如你在轨道0播放动画并监听事件那么事件触发才会被捕获。5.4 问题四换装Skin后部位显示错乱或缺失可能原因皮肤数据不匹配新皮肤可能没有包含旧皮肤中的所有插槽Slot附件Attachment。切换皮肤后某些插槽可能变为空。未重置插槽切换皮肤后必须调用SetSlotsToSetupPose()来将插槽重置到绑定姿势Setup Pose否则会保留之前皮肤的附件状态。皮肤叠加顺序当使用AddSkin叠加皮肤时后添加的皮肤会覆盖先添加的皮肤中同名的附件。确保叠加顺序符合你的设计逻辑。5.5 一个典型的性能陷阱每帧查找动画状态避免在Update中频繁使用skeletonAnimation.AnimationState.GetCurrent(0)来获取当前动画状态以进行逻辑判断。这个调用有开销。更好的做法是在动画切换的瞬间记录下当前状态。// 不推荐 void Update() { var currentAnim skeletonAnimation.AnimationState.GetCurrent(0); if (currentAnim ! null currentAnim.Animation.Name attack) { // 做某事 } } // 推荐在切换动画时记录状态 private string _currentAnimationName; public void PlayAnimation(string animName, bool loop) { skeletonAnimation.AnimationState.SetAnimation(0, animName, loop); _currentAnimationName animName; } // 然后直接使用 _currentAnimationName 进行逻辑判断集成Spine动画到Unity是一个从工具链到运行时深度结合的过程。它远不止是“导入-播放”那么简单涉及到资源管理、渲染管线适配、动画状态机设计、性能优化等多个层面。理解其核心数据流SkeletonData Asset - Skeleton - AnimationState和工作原理是解决一切复杂问题的钥匙。在实际项目中建议建立一套规范的资源目录结构、封装一个通用的Spine角色控制器并尽早进行性能压力测试。当你能够流畅地控制上百个Spine角色在屏幕上战斗时那种成就感绝对值得你为掌握这些细节所付出的努力。

相关新闻

Unity集成大模型API:实现智能NPC对话系统

Unity集成大模型API:实现智能NPC对话系统

1. 项目概述:当游戏引擎遇见大模型最近在做一个Unity项目,想给里面的NPC加点“灵魂”,让它们能跟玩家进行更自然、更有深度的对话。传统的对话树和状态机虽然稳定,但内容固定,玩几次就腻了。正好看到DeepSeek-R1的API开…

2026/8/4 19:26:35 阅读更多 →
React Native开发环境搭建全指南

React Native开发环境搭建全指南

1. React Native 环境搭建概述React Native 作为 Facebook 开源的跨平台移动应用开发框架,允许开发者使用 JavaScript 和 React 来构建原生移动应用。与传统的 Hybrid 应用不同,React Native 通过桥接技术将 JavaScript 核心与原生平台组件连接&#xff…

2026/8/4 17:17:00 阅读更多 →
Alpha Vantage股票数据下载器:稳定、归一化、生产就绪的API封装实践

Alpha Vantage股票数据下载器:稳定、归一化、生产就绪的API封装实践

1. 项目概述:为什么一个股票数据下载器API值得花时间重做一遍我从2016年开始写量化策略,最早用Excel手动扒雅虎财经的CSV,后来换到pandas-datareader,再后来发现它连标普500成分股都经常返回空值——不是接口挂了,是底…

2026/8/4 23:30:21 阅读更多 →

最新新闻

零阶矩、一阶矩、二阶矩详解:从物理意义到图像识别与数据分析实战

零阶矩、一阶矩、二阶矩详解:从物理意义到图像识别与数据分析实战

1. 从“矩”说起:一个被低估的数学工具“矩”这个概念,听起来有点抽象,像是高等数学课本里才会出现的名词。但你可能不知道,从你手机里的人脸识别解锁,到医生看CT片判断病灶,再到金融分析师评估投资风险&am…

2026/8/5 2:21:04 阅读更多 →
DeepSeek AI编程助手实战指南:从提示工程到开发全流程应用

DeepSeek AI编程助手实战指南:从提示工程到开发全流程应用

最近在 AI 助手圈子里,一个有趣的“梗”正在流传: “我是皇帝,DeepSeek 乃朕之丞相,望周知” 。这当然不是真的在讨论历史或权力,而是开发者们用这种诙谐的方式,表达对 DeepSeek 模型在编程和问题解决中强…

2026/8/5 2:21:04 阅读更多 →
揭秘百家号算法最新变动:AI写稿如何绕过限流雷区,3步通过原创审核

揭秘百家号算法最新变动:AI写稿如何绕过限流雷区,3步通过原创审核

更多请点击: https://kaifayun.com 第一章:揭秘百家号算法最新变动:AI写稿如何绕过限流雷区,3步通过原创审核 近期百家号升级内容质量识别模型,引入多模态语义指纹比对与行为时序建模机制,对AI生成内容的识…

2026/8/5 2:21:04 阅读更多 →
C++迷宫游戏实战:用DFS算法实现迷宫生成与路径搜索

C++迷宫游戏实战:用DFS算法实现迷宫生成与路径搜索

1. 项目概述:从零构建一个C迷宫游戏如果你正在学习C,并且对数据结构和算法感到既好奇又有点无从下手,那么这个迷宫游戏项目绝对是你不可错过的实战演练。它不是什么高深莫测的AI项目,而是一个能让你亲手把书本上的“数组”、“递归…

2026/8/5 2:21:04 阅读更多 →
阿里云服务器新手选购全攻略:从零到一轻松上手ECS与轻量应用服务器

阿里云服务器新手选购全攻略:从零到一轻松上手ECS与轻量应用服务器

1. 从零开始的云服务器选购心路最近身边好几个朋友想折腾点自己的小项目,比如搭个博客、跑个自动化脚本,或者纯粹想有个能24小时在线的“网络小窝”,都跑来问我同一个问题:“怎么买阿里云服务器?”。说实话&#xff0c…

2026/8/5 2:21:04 阅读更多 →
AI Agent白手起家28: LangChain 五种提示词模板实战解析

AI Agent白手起家28: LangChain 五种提示词模板实战解析

内容纲要 提示词模板核心概念 PromptTemplate:面向纯文本 LLM 的字符串模板ChatPromptTemplate:面向对话模型的结构化模板MessagesPlaceholder:在消息列表中动态插入内容的占位符使用 SystemMessage、HumanMessage、AIMessage 灵活组合模板自…

2026/8/5 2:20:04 阅读更多 →

日新闻

Java缓存框架:JetCache

Java缓存框架:JetCache

TOC 一、简介 JetCache 是一个 Java 缓存抽象框架,为不同的缓存解决方案提供了统一的使用方式。 它提供的注解比 Spring Cache 更加强大。 JetCache 的注解支持原生 TTL、两级缓存以及在分布式环境中的自动刷新功能,同时你也可以通过代码直接操作 Cach…

2026/8/5 0:00:43 阅读更多 →
AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

需求:通孔焊盘 十字花;过孔 Via 实心直连;贴片焊盘按需设置 AD 测试版本AD24 很多工程师踩坑:全部统一十字,导致接地过孔阻抗高、大电流发热! 一、快捷键打开规则 PCB 界面按下:D R 展开…

2026/8/5 0:00:43 阅读更多 →
AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

更多请点击: https://kaifayun.com 第一章:AI生成素描效果 AI生成素描效果是计算机视觉与风格迁移技术融合的典型应用,其核心在于将彩色照片或RGB图像转换为具有手绘质感、明暗对比强烈、边缘清晰的单色素描图像。该过程通常依赖于深度学习模…

2026/8/5 0:00:43 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

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

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

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

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

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

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

2026/8/4 11:09:16 阅读更多 →
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/4 13:38:40 阅读更多 →