最近有位做游戏的老哥跟我说,他当年就是用贪吃蛇练手的。今天我就带你从零开始,用Unity捣鼓个会扭腰的3D贪吃蛇,保证比传统版本更有意思!咱们先准备点零食和快乐水,马上开工!
一、搭好舞台布景
打开Unity新建3D项目,先给游戏世界铺个地皮:
- 右键Hierarchy面板选3D Object -> Plane
- 把Scale调到(5,1,5)让它变大点
- 材质球换个草绿色,看着清爽
| 对象名 | 作用 |
| SnakeHead | 带移动脚本的蛇头 |
| BodyPart | 预制体存蛇身段 |
1. 给蛇头安腿脚
创建Sphere当蛇头,挂上刚写的SnakeMovement脚本。核心代码长这样:
void Update {if (Input.GetKeyDown(KeyCode.W))direction = Vector3.forward;else if (Input.GetKeyDown(KeyCode.S))direction = Vector3.back;//...其他方向键处理void FixedUpdate {transform.position += direction speed Time.deltaTime;二、喂蛇吃大餐
做个会随机刷新的苹果,吃到就长身体:
- 建个FoodSpawner空物体
- 在(-4.5, 0.5, -4.5)到(4.5,0.5,4.5)之间随机生成
- 记得给苹果加触发器碰撞
蛇身生长秘籍
用链表存身体部位,每次吃到食物就实例化预制体:
ListbodyParts = new List ;void GrowBody {GameObject newBody = Instantiate(bodyPrefab);newBody.transform.position = bodyParts.Last.position;bodyParts.Add(newBody.transform);
三、给游戏加点料
现在咱们来整点刺激的!在场景里放些红色方块当路障:

- 每个障碍物加Box Collider
- 碰到障碍就触发GameOver
- 用粒子效果模拟爆炸
死亡倒计时
做个30秒的定时器,在UI上显示:
IEnumerator Countdown {while(timeLeft > 0) {timeText.text = $"剩余时间: {timeLeft}秒";yield return new WaitForSeconds(1);timeLeft--;GameOver;四、玩家看得懂的界面
在Canvas里搭个简单明了的UI:
- 左上角显示当前得分
- 右上角倒计时进度条
- 中间藏个暂停按钮
- 游戏结束时弹出结算面板
void UpdateScore {scoreText.text = $"吃掉的苹果: {eatenApples}";// 每吃5个苹果加速if(eatenApples %5 ==0)speed = 1.2f;最后把场景保存为SnakeScene,点击播放键试试看!当你的小蛇灵活地绕过障碍,追着苹果满地跑的时候,别忘了给自己鼓个掌——这可是你亲手养大的电子宠物呢!要是想让游戏更有挑战性,随时可以到Inspector面板里调大移动速度,或者多复制几个障碍物出来。