AI加持下使用Unity零代码开发3D游戏Demo
类似这种游戏大家一定见过,很多游戏的买量素材也都是这样的。

最近在做这种游戏的Demo,开始的时候用熟悉的cocos creator做了一个2D版的,效果不是很好。于是准备改成3D,试了下cocos的3D编辑器,使用体验一言难尽,相机改个坐标预览窗口就卡成图片。最终还是放弃了,拿起了好久没有用的Unity。
Unity虽然之前用过,但是也没有从0开发过3D游戏,之前的unity经验主要是进行一些二次开发,是在完整的游戏下进行修改。还有就是做一些Android SDK开发的工作,总之都不太涉及3D游戏开发。
之前我个人的游戏开发经验也主要是2D游戏,3D方面的积累比较少。
唯一一些3D经验是使用Threejs做过一些模型展示小项目,对3D模型有一些浅显的了解,仅此而已。
以上这就就是本次3D游戏开发的基础,为了更好的完成本次Demo,首先了解了一些关于渲染的知识,之前也写过一篇入门介绍。
也是本着学习的心态,开启了本次开发之旅,全程没有写一行代码,全部由AI生成。
用到的AI工具
- DeepSeek:用来了解Unity 3D开发相关的知识,代替搜索引擎
- Codebuddy:本次代码编写主力,模型用的是GLM 5.1 ,优点就是生成速度快,代码质量也比较高。
- Antigravity:使用强模型解决GLM反复搞不定的问题
项目概览
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
核心玩法: 玩家控制一支由主力兵种(战士/弓箭手/法师)和小兵组成的队伍,在无限滚动的道路上前进。通过左右移动躲避障碍、攻击敌人、收集增益物品,直至全灭判定游戏结束。
技术架构
场景流程

关键设计

核心模块
战斗系统
采用 ITargetable 接口 + 基类继承 的多态架构:
ITargetable定义统一的目标接口(IsAlive,Position,AimPoint,TakeDamage)UnitBase实现索敌(前方扇形锥形检测)、攻击间隔管理、受击反馈、死亡协程- 各子类差异化:
- WarriorUnit: 近战高攻+暴击机制,发射剑气投射物
- ArcherUnit: 远程高攻速+连射概率,自定义 TakeDamage(无 Hit 动画状态)
- MageUnit: AOE范围攻击+减速效果
- SoldierUnit: 弱化版战士,随机开火延迟避免同步
无限道路系统
双脚本协作:
- RoadScroller: 管理 3 个马路段的队列,玩家走过旧路段时回收并在前方生成新段
- RoadSpawner: 在新马路段上随机生成物品和敌人,支持最小间距检查、最小距离过滤、前方锥形区域限制
对象池系统
// PoolManager 核心APIPoolManager.Instance.Spawn("EnemyName", parent); // 从池中获取或实例化PoolManager.Instance.Return("EnemyName", obj); // 归还到池中(禁用+回收)PoolManager.Instance.ClearAll(); // 清空池(重新开始时调用)
特点:DontDestroyOnLoad 跨场景持久化,支持同步/异步分帧预加载。
开发过程
创建3D项目
打开创建项目的页面,发现里面有很多模版,不知道该用哪个,大概看了一下,3D相关模板的有好几个。

大概看了一下,关键区别应该就是URP、HDRP之类的,这些概念不熟悉,DeepSeek出场,问它就可以了,很快就搞明白了。

导入模型资源
既然是3D游戏,就得有模型,这时候需要了解unity中支持的3D模型格式,各种格式的模型之间的区别,还是依靠DeepSeek。这些常规的问题不需要多么强大的语言大模型,大多数语言大模型都能搞定。在DeepSeek的帮助下安装了一些Package

编写逻辑代码
项目创建好了,接下来就进入核心阶段,编写代码。编辑器用的是VS Code + CodeBuddy插件,现在有免费的积分可以薅,可以免费获得几千的积分。整个Demo写完,大概看了下,用了3000积分。

后面就是对话->运行游戏->总结问题->对话的循环了,不断对话过程中的一些经验(画重点):
- 完成一个小功能就push一下代码
这样方便看后续对话中代码改动。AI有时候确实也会误改代码,万一某次改错了,让他修复又修复不了的时候,还可以回退。虽然代码助手也有回退功能,但是如果对话轮数太多,要想回退还要往前翻,还不如在git中找到你要回退的版本,然后开启新对话,让AI继续干活。
- 发现代码写错,要尽量描述清楚问题
如果你能描述清楚错在哪里,期望的目标是啥样的,AI能比较准确的抓住重点,也能很快发现代码的问题,然后就可以修复了。如果你的描述比较模糊,它的思考时间就会变长,而且可能理解错。如果我发现他的思考时间变长,我会立马停止问题,撤回本次对话,重新描述问题。
- 适当的时候停止对话,重新开启新对话
AI模型的一个通病,每次对话都会把整个对话过程发给模型,虽然现在有很多方法来解决模型的记忆问题,但是对话一旦被压缩,很有可能失真。我更习惯于在完成某个功能后结束本次对话,然后开启新对话,让AI重新读取项目、理解项目,继续完成后续的新功能。
- 切换模型
如果遇到复杂逻辑或者是要做一些性能优化之类的工作,还是要尽量用更强大的模型,比如Claude,Gemini等等。这个时候就可以薅Google Antigravity中的模型能力,每周都可以免费用,虽然额度有限。
- 写说明文档
现在这些编程助手不止能写代码,也可以写文档。比如在开发过程中要给角色设置动画,就可以让它把整个设置动画的过程总结成文档放在项目中,后续在增加其他动画时就可以参考之前的文档,不容易出错。还可以写一些功能的使用文档,比如音效管理器、缓存池的使用方法等。
Demo效果
开发效率真的是大大提升,整个Demo的开发也就用了3,4天时间,这中间还包含一些折腾模型问题。在编写代码方面,AI真的可以取代程序员了。它有丰富的开发经验和熟悉各种开发语言(基于庞大的大模型训练数据),人类程序员很难做到。

夜雨聆风