Unity Spark 发布:浏览器里用 AI 自然语言直接做游戏 Unity Spark 正式发布浏览器里直接用 AI 做游戏Unity Spark 正式发布这个消息我盯了很久。它最核心的那句话其实特别简单在浏览器里直接用 AI 做游戏。不用装 Unity Hub不用先学 MonoBehaviour打开网页你用自然语言描述想要什么AI 就在后台帮你搭场景、配置组件、生成 C# 脚本预览、试玩、改需求最后还能把整个工程带出去继续深化。它直接省掉了学引擎、配环境、搭项目这一大段劝退流程让做游戏这件事从先学三个月工具变成了先说出你的想法。这篇文章我想聊透三个层面的东西Unity Spark 到底做了什么、浏览器里 AI 做游戏的机制是什么、以及实操过程中你会遇到哪些坑。如果你是没有 Unity 基础的游戏爱好者或者想快速验证玩法的独立开发者又或者只是好奇AI 做游戏到底靠不靠谱这篇都能给你一个比较落地的参考。1. Unity Spark 到底是个什么东西——先把它看透1.1 一句话拆解浏览器里的 Unity 加 AI 助手很多人第一次看到浏览器里直接用 AI 做游戏这个描述容易产生两种极端误解一种是觉得Unity 这产品就是个玩具级网页工具另一种是觉得我以后不用学编程了。实际上Unity Spark 的定位介于两者之间而且选了一个挺聪明的架构。它本质上是把 Unity 的运行时能力搬到了浏览器里同时接了一层 AI 代理。你在页面上看到的 3D 预览视口是真的在用 WebGL 或者 WebGPU 渲染场景底层的游戏对象、组件、物理系统、输入系统都还是 Unity 那套对象模型。区别在于传统工作流是你手动创建 GameObject、挂组件、写脚本、调参数而 Spark 里这些操作大部分由 AI 根据你的自然语言指令来执行。我打个比方你以前是当着老板的面自己动手砌墙Spark 是给你配了一个听人话的施工队你说这里要一堵砖墙带窗户它就把砖和窗户给你安排上。你依然可以自己上手拆改但默认的干活方式是你说需求它出活。这种设计最大的好处是AI 生成出来的东西不是黑盒它依然落在 Unity 的对象结构里。你看得到层级列表里有哪些对象、哪些组件、参数是多少这意味着你随时可以手动干预。而AI 生成 手动可改这一组合恰好是目前做 AI 创作工具里最靠谱的交互形态。1.2 这个工具到底在解决谁的什么痛点要理解 Spark 的价值得先看传统做游戏的第一道坎有多高。说一个我见过很多次的场景一个脑子里已经有完整玩法想法的人第一次打开 Unity光是搞定 许可证、安装编辑器、创建项目、熟悉操作界面就花掉了一个下午。等他终于知道怎么往场景里拖一个方块又开始面对 C# 脚本、Transform、Collider 这些概念。很多人在做出第一个能玩的 Demo之前就已经被工具本身劝退了。Spark 要解决的痛点非常明确把做游戏和学引擎解耦。你不需要先理解什么是 Prefab什么叫组件什么是物理碰撞。你只需要说创建一个第三人称游戏玩家在一个草地上跑动收集金币碰到金币后分数增加按空格跳跃AI 会把这段话拆成可执行的任务然后生成对应的场景、角色、脚本和 UI。当然它更适合的人群也很清楚。如果你是完全零基础的爱好者Spark 让你第一次感受到原来我描述出来的游戏真的能跑起来。如果你是用 Unity 做过东西的开发者Spark 让你从手动写样板代码里解脱出来把精力集中在玩法和调优上。如果你是策划或者美术想自己验证一个玩法靠不靠谱这几乎是目前最顺手的工具。1.3 和传统 Unity 工作流的关键差异我把传统 Unity 和 Spark 的差异整理成了一张对照表方便你理解定位上的变化。维度传统 Unity 工作流Unity Spark 工作流环境准备安装 Hub、安装编辑器、创建项目浏览器打开登录即用场景搭建手动摆放物体、拖拽资源自然语言描述AI 生成场景脚本编写手写 C#处理编译错误AI 生成 C# 脚本对话式修复资源处理导入商店资源或 DCC 制作AI 生成占位资源可混合导入调试反馈Console 窗口、断点调试试玩预览 Console 对话反馈发布路径Build Settings 打包导出 WebGL 或导出 Unity 工程继续开发要注意的是这张表不是说 Spark 就要取代桌面版 Unity。恰恰相反它更像是给整个 Unity 生态做了一个前端轻量入口。你在浏览器里的产物最终还是回到桌面编辑器里继续加工比较现实。这个点我会在后面的实操部分详细说。2. AI 在浏览器里到底帮你做了哪些事——核心机制拆解2.1 从自然语言到游戏场景AI 怎么搭建你的世界AI 把你的话变成游戏场景这件事听起来很玄拆开看其实是一套语义解析 资源映射 对象实例化的流程。第一步是语义解析。你输入一片绿色草地上有一个金黄色的金币AI 要对这句话做实体抽取草地是一个地面对象绿色是材质属性金黄色是金币的颜色特征金币是要生成的可交互对象。第二步是资源映射AI 会从内置资源库、程序化生成或预置模板里挑选匹配的模型、材质和贴图。第三步是实例化AI 把这些资源变成真正的 Unity 对象设置 Transform 位置、Scale挂上必要的组件比如地面要挂 Collider金币要配置碰撞触发器。这里有个容易忽略但很关键的细节AI 不只是生成看起来像它必须生成引擎里能用的东西。一个只有 MeshRenderer 的金币模型玩家走过去你是检测不到碰到金币这个事件的。AI 需要在生成模型的同时挂一个 BoxCollider并且标记为触发器这样后续挂载的收集脚本才能工作。所以我比较建议你在提需求时把可交互性表达清楚。比如玩家碰到金币后金币消失这句话就隐含了要求 AI 配置碰撞检测逻辑。如果你只说放一个金币那 AI 很可能真的只是放一个静态装饰物。同时你要知道AI 生成的场景通常是对象级的组合而不是捏模型。它更像一个熟悉 Unity 的现场监理把你的口头要求翻译成一套预制体结构然后用引擎的规则去组装。这也是为什么生成出来的游戏你还能在面板里看到层级结构、能手动微调——因为底层本来就是一个标准的 Unity 场景。2.2 C# 逻辑生成AI 写代码背后的门道场景搭完之后真正决定游戏能不能玩的是逻辑层。AI 在这一点上的发挥说实话是让我又爱又恨的部分。先说它做得好的AI 生成 C# 脚本对于很多高频、模板化的玩法逻辑非常可靠。比如第三人称角色控制、简单的按钮点击反馈、计时器、分数累加、场景切换、敌人沿固定路径移动——这些逻辑在大量训练数据里出现了无数次AI 生成出来的代码基本能直接跑。因为这类代码本身就有很强的套路性GetComponent、Input.GetAxis、OnTriggerEnter、Text 更新模式固定出错率低。但如果你让它做偏架构、偏系统的东西比如实现一个事件驱动的成就系统做一个支持存档和读档的背包系统AI 很容易写出一种看起来好像什么都覆盖了但真正跑起来到处是漏洞的代码。原因是这些功能涉及程序状态的管理、生命周期和模块解耦不是几句模板代码能搞定的。我建议你调整一下预期AI 生成脚本适合当作可运行的原型骨架不适合当作交付级代码。你依然需要具备基本的代码阅读能力至少要能在 Console 报错时定位到某个 Augment 是不是空引用、哪个方法没被调用。实操上的一个技巧是让 AI 生成脚本时尽量把输入方式和判定规则分开描述。例如你写按空格跳跃比写玩家可以跳跃更有效因为你给了 AI 明确的信号这个动作需要监听键盘输入而不是自动触发。2.3 浏览器凭什么能跑得动——WebGPU 与资源策略一个 3D 游戏引擎跑到浏览器里还能保持不错的编辑体验这背后是渲染技术和资源策略的双重支撑。老牌 WebGL 2.0 已经能让 Unity 跑出可玩的 WebGL 游戏但它本质上是为旧 GPU 设计的 API很多现代图形特性用不上。WebGPU 则是新一代浏览器图形接口它更贴近现代 GPU 的并行计算模型允许开发者更高效地控制渲染命令、缓存资源和并行任务。Unity 对浏览器的支持在 WebGPU 逐步普及之后有了明显的体验提升。你编辑时旋转视角、拖动对象、预览游戏画面流畅度已经接近本地工具的感觉。不过这里我必须泼一点冷水浏览器端的 Unity 运行时性能上限一定低于本地原生应用。这是平台的物理约束不是优化能完全抹平的。浏览器里的 JavaScript 与 WebAssembly 层、GPU 驱动的抽象、内存回收机制都会带来额外开销。你做同屏几十个对象、2-3 分钟一局的轻量玩法很稳但别试图在浏览器里跑开放世界、大范围粒子特效、大量物理模拟。架构上还有个容易忽略的点AI 服务本身在云端但渲染和运行在本地浏览器。所以你在对话框输入一条指令它要经历上传请求、云端生成、结果同步、浏览器刷新场景的链路。网络状况好的话这个延迟几乎无感但如果生成复杂场景等待时间会明显变长。这属于正常现象可以理解成你在和一个远程搭档协作他做事需要一定时间。3. 实战流程在浏览器里做出一个能玩的游戏3.1 准备工作不需要安装但需要想清楚三件事打开网页、登录账号、进入工作台你的环境就绪了。没有安装包、没有配置项、没有版本兼容问题。但我不建议你什么都不想就冲进去乱打字提前想清楚三件事能让你少踩一半的坑。第一件事是玩法闭环。你的游戏里玩家要做什么怎么算赢、怎么算输这是 AI 最需要的信息。比如玩家控制角色在限时内搜集全部金币就比做一个有关卡的游戏清楚得多。第二件事是美术氛围。你需要在哪个空间里发生这个故事城市、草原、太空还是抽象空间色调偏明亮还是偏灰暗第三件事是技术边界。这个游戏需要多复杂的交互目前先做单局、单角色、简单规则还是已经涉及多角色、技能组合、存档系统我平时自己用一般会先在笔记里写一句话锁死这三个维度。比如一个第一人称跑酷游戏玩家在城市屋顶上奔跑躲避无人机坚持 60 秒算胜利手机风格的低饱和度色调。这句话看起来简单但 AI 从中能提取出视角类型、场景地点、核心玩法、时间条件、美术风格。信息密度比做个跑酷吧高了不止一个数量级。3.2 把想法翻译成 AI 听得懂的指令如果说做游戏是盖房子那 Prompt 就是你的施工蓝图。AI 能理解模糊表达但理解得越准确生成结果越接近你的预期。我总结了一个已经用了很久的指令模板创建一个[视角]游戏玩家[核心动作]场景是[地形描述]目标[胜利/失败条件]控制方式是[键盘/鼠标/触屏操作描述]界面显示[分数/血量/时间]注意[需要特别强调的规则或限制]。举个例子假设我想要的游戏是接金币创建一个第三人称游戏玩家控制一个卡通角色在一片绿色草地上移动按 WASD 移动按空格跳跃。场景里会持续生成金币玩家碰到金币后金币消失并且分数增加 10 分。游戏计时 60 秒倒计时结束后显示最终得分。这句话拆给 AI包括视角类型第三人称、角色控制WASD 加跳跃、场景布局绿色草地、动态生成持续生成金币、交互规则碰到即收集、UI 要求计时和得分。基本上一轮生成就能有一个可以试玩的版本。这里有几个容易踩的坑。一是避免使用漂亮好玩自然这类纯主观形容词AI 对它们的理解不可控换成明亮色调低多边形风格环形赛道这类可执行的描述。二是一次只加一个系统别在第一条指令里同时要求金币收集、敌人 AI、商店系统、成就系统生成结果大概率会乱。正确的做法是先跑通核心玩法再逐步叠加其他系统。三是数值要具体失去 3 点生命值比会掉血更精确每 5 秒生成一个金币比持续生成金币更容易做出可调的原型。3.3 修改与调试AI 游戏开发的日常循环第一版生成之后你一定会觉得这里不对、那里不对。这不是工具的缺陷这就是游戏开发本来的样子。Spark 的调试工作流和传统编辑器里的调试很不一样它更像一个对话式循环。我实测下来的典型循环是提出指令、生成游戏、点击试玩、观察行为、看 Console 报错、回对话框给反馈、再次生成。每一步之间的反馈信息越具体AI 修复越准。比如你试玩发现角色碰到金币后分数没增加那你在对话框里应该写金币的收集逻辑没有生效玩家穿过金币时金币没有消失分数没有变化。请检查 OnTriggerEnter 和分数变量更新逻辑。而不要只写金币有问题。前者告诉 AI 具体现象、涉及对象、可能的原因层级后者基本等于让它盲猜。还有一个很实用的经验如果 AI 死活修不好同一个问题别跟它一直吵直接手动打开生成的脚本看一眼。AI 生成的代码通常不长你大概看一遍就能定位出问题比如碰撞 Tag 判断错了、引用没赋值、事件没绑上。改一行代码比让 AI 重新生成三遍要快得多。记住这个原则AI 擅长局部修复不擅长在你看不到的角落做全局重构。3.4 导出与发布成果怎么带出浏览器玩清楚了、觉得这个原型有戏下一步就是把成果带出浏览器。一般这类工具会提供两种出口一是导出成 Unity 工程拿到桌面版编辑器里继续深加工二是直接导出 WebGL 包发布到网页上。我自己更推荐的路径是第一种。把工程导出来之后放到本地 Unity 里打开你会看到一套标准的项目结构。这时候我建议你做三件事第一新建一个场景把它另存为原型备份避免后续操作覆盖掉当前版本第二把 AI 生成的脚本集中整理到一个专门的文件夹顺手检查命名空间和类名是否冲突第三手动跑一遍游戏把浏览器里没暴露出来的编译警告清理掉。发布这块如果目标是 WebGL要注意首包体积和纹理压缩。AI 生成的纹理尺寸容易偏大在导出设置里把纹理压缩格式调成合理的范围能明显减小包体。相信我用浏览器打开一个 300MB 的 WebGL 游戏等待时间足够劝退一批玩家。4. 踩坑实录这些问题我基本都遇到过4.1 AI 生成的代码和资产有多可靠先说结论AI 生成的单文件、单功能的代码可靠性能到七八成一旦涉及跨脚本协作可靠性就肉眼可见地下降。我遇到过最典型的幻觉错误让 AI 做一个对象池它生成的代码看起来头头是道有池子、有回收逻辑、有初始化但真正跑起来才发现它把按需实例化和预加载混在一起导致对象在场景切换时丢了一部分引用。还有一种更气人的情况它引用了一个根本不存在的组件名称比如把 CapsuleCollider 写错为 CapsuleCilinderCollider编译直接报红。这些问题的本质原因是 AI 在组合知识而不是理解系统它见过类似的代码片段却不一定理解 Unity 对象模型里的约束关系。给我的建议是任何 AI 生成的脚本在你亲自看过之前都不要直接进 Build。至少要做三层检查——第一层看一眼有没有编译错误第二层跑一遍看核心行为是否符合预期第三层手动试一下边界条件比如连续快速点击会不会报错、角色碰撞后卡住怎么办。这三层未必每次都能发现所有问题但能拦住绝大多数醒来才发现原来昨晚 AI 写了一个隐藏炸弹的尴尬情况。4.2 性能与资源管理的现实约束浏览器环境的性能问题我实测下来最直观的感受是对象数量和粒子特效是压垮帧率的两大元凶。一次我让 AI 生成一个金币不断掉落、地面全是花朵和树木的场景生成的时候没觉得有什么不对一运行发现帧率掉到了十几。检查之后发现问题是币刷得太多、每一朵花都是独立的高模网格、再加上几个全局粒子特效浏览器直接扛不住。后面改成币分批生成、花用公告板替代、粒子特效只在触发时播放立马流畅了。这里给几个可执行的性能建议。一是给对象生成加上限明确告诉 AI同屏金币不超过 20 个。二是避免同时出现多个全局特效比如下雨、火花、飘落花瓣这类效果留在最后加而且随时准备关掉。三是材质纹理优先用低分辨率版本AI 生成资源时我通常会补一句所有纹理使用 512 分辨率。浏览器运维资源这件事的本质是你要把场景预算写进指令里。你在本机开一个 5000 个物体的场景毫无压力但浏览器环境会更早到达瓶颈所以最好从第一版生成时就把预算控制住而不是等卡了再回去改。4.3 项目组织与版本控制很多人在浏览器里做游戏时容易陷入一直生成、一直覆盖的状态然后忽然发现上次那个还不错的版本被这次的改动覆盖了。说实话这种工具的云端保存机制我没法完全摸清所以我的自保策略非常简单每完成一个里程碑马上导出一次工程备份。命名规则用日期-玩法状态比如20250612-金币收集可玩版。千万别起名叫最终版最终版2真正最终版血的教训。还有一个很隐蔽的问题AI 生成的脚本类名冲突。它特别喜欢用 GameManager、PlayerController 这类通用名字你多个场景导出到同一个工程时很容易撞车。我的做法是导出之后第一时间给脚本附加前缀比如改成 Spark_PlayerController再继续开发。别小看这一步等你项目东西多了再回头改类名工程量是几何级增长的。4.4 高频错误速查表现象常见原因处理方式运行后黑屏相机或灯光缺失让 AI 添加主相机和平行光角色穿墙或掉落Collider 缺失或缩放异常检查 Mesh 的碰撞体必要时添加 BoxCollider碰到金币无反应Tag 判断或引用未赋值查看脚本里 OnTriggerEnter 的对比条件指令生成超时描述过复杂或临时网络问题刷新重试拆分成更小任务物体浮空或嵌入地面Transform Y 轴偏移手动微调或让 AI 重置为碰撞点位置生成的场景严重卡顿对象数量过多要求 AI 减少同屏对象关闭特效脚本报错 NullReference引用未在 Inspector 赋值检查 Inspector 拖拽引用这套速查表不解决问题的话还有一个终极大招把报错信息原样复制给 AI让它针对报错重写脚本。绝大多数情况下AI 自己写的代码、看自己报错再改定位能力比凭空改要强不少。5. 换个思路用 Spark定位、边界与下一步5.1 Spark 适合做哪些事不适合做哪些事经过一段时间的实操我对 Spark 最适合的场景已经有了比较明确的判断。它是做玩法验证的利器不是做产品打磨的终点。适合做的事包括Game Jam 前快速验证一个点子、策划向团队展示交互逻辑、美术检查场景空间感、教学场景让新手理解游戏对象与交互、或者单纯想做一个 2-3 分钟的小游戏分享给朋友。它的核心优势是从想法到可玩版本的路径最短这个优势在需要频繁试错和大量创造早期版本时价值巨大。不太适合做的事也显而易见需要复杂网络同步的多人在线游戏、需要精确手感调校的动作游戏、涉及商业化系统和大体量资源管理的项目。这些事不是不能做而是这类工具在性能上限、工程结构控制、版本迭代管理上暂时满足不了需求。你要是非拿它做一个包含云存档、在线排行榜、内购系统的完整手游我只能说你会在工具边界上撞得怀疑人生。5.2 给 Unity 开发者的工作流建议如果你本身就用 Unity 做项目我提供一个我觉得最顺手的三层工作流。第一层在 Spark 里用最快的速度把玩法闭环跑通。这一层只关心这个玩法有没有趣不关心架构、不关心性能、不关心手感。第二层导出到桌面版 Unity把 AI 生成的脚本当作一个可运行的注释版以此为基础重写架构。这步是关键的转折点AI 的代码解决的是验证可行性你的重构解决的是让它活到正式上线。第三层才是美术精修、性能针对优化、音效包装、多平台适配。这个流程最大的好处是你把创意筛选的成本压到了最低。以前一个点子从立项到验证可能要用掉一到两周现在半天内就能获得做下去还是砍掉的答案。对于独立开发者来说这个效率提升比 AI 替我们写几条代码有意义得多。5.3 后续可能演化的方向聊点站在这个发布节点上我个人比较关注的前景方向。一个是 AI 从生成命令走向理解玩法文档。现在你还是要用对话把规则一条条喂给 AI未来如果它可以直接读取一份设计文档自动生成对应的场景和脚本那生产力会再上一个台阶。另一个是更底层的资产管线能力程序化生成的角色、动作、音效如果能整合进同一个对话界面做出来的游戏会完整得多。还有一个让我很感兴趣的方向是 AI 根据你的玩法自动提出修改建议——比如它发现你的金币生成频率太高主动提示你调整数值这已经超越代码助手开始向游戏策划辅助演化了。当然这些只是基于当前产品形态的合理推演能不能落地还要看后续版本。但方向本身已经足够让人兴奋。我个人实际用下来最大的感受是Spark 并不试图把程序员从游戏开发流程里抹掉它抹掉的是从 0 到 1那个最劝退的坎。你依然需要理解基本的游戏逻辑、碰撞、变量、UI 这些概念才能和 AI 有效协作但你再也不需要先花三个月学会一个复杂的编辑器才能验证一个玩法的好坏。给第一次动手的朋友一个最实在的建议别一上来就整宏大世界从接金币或者限时跑酷这类最基础的小循环入手把描述需求、生成、试玩、反馈、导出这五个动作完整走一遍。走完这一遍你对自己到底适不适合 AI游戏开发基本就有数了。