Unity 3D 入门教程:从零开始制作你的第一个游戏
本教程分为几个主要部分:

- Part 1: 准备工作 - 安装与初识
- Part 2: 核心概念 - 必须知道的几个名词
- Part 3: 动手实践 - 制作一个“滚动的球”
- Part 4: 进阶项目 - 制作一个“点击消灭方块”的小游戏
- Part 5: 学习资源与进阶之路
Part 1: 准备工作 - 安装与初识
下载和安装 Unity
- 访问官网: 打开 Unity 官方网站 https://unity.com/
- 下载 Hub: 下载并安装 Unity Hub,这是 Unity 的管理器,用于安装不同版本的 Unity 编辑器、管理项目和。
- 安装编辑器:
- 打开 Unity Hub,点击 "Installs" 标签页。
- 点击 "Add",选择一个 LTS (Long-Term Support) 版本,LTS 版本非常稳定,适合学习和开发项目,推荐最新的 LTS 版本(如 2025.3.x)。
- 在安装界面,选择你需要的 模块:
- Built-in Render Pipeline: Unity 自带的渲染管线,适合初学者。
- Universal Render Pipeline (URP): 现代化的通用渲染管线,性能好,功能强,是未来的趋势,强烈推荐初学者选择。
- IL2CPP Code Generation: 可以保持默认。
- 点击 "Done" 开始安装,安装过程可能需要一些时间,请耐心等待。
熟悉 Unity 编辑器界面
安装完成后,创建一个新项目(选择 3D 模板),你将看到 Unity 的主界面,它主要由以下几个部分组成:
- Scene (场景视图): 这是你的“工作台”,你可以在这里摆放、移动、缩放和旋转你的游戏对象(如角色、道具、灯光等),这是 3D 视图。
- Game (游戏视图): 这是“最终呈现的窗口”,也就是玩家在游戏中看到的画面,它会实时显示你当前场景的渲染结果。
- Hierarchy (层级视图): 这是场景中所有游戏对象的“列表”,你在这里可以看到场景里有什么,并可以创建、删除、组织它们。
- Inspector (检视视图): 这是“属性面板”,当你选中 Hierarchy 或 Project 中的任何一个对象时,这里会显示该对象的所有组件和属性,你可以在这里进行详细的修改。
- Project (项目视图): 这是你的“资源管理器”,存放你所有的游戏资源,如模型、贴图、声音、脚本等,你可以在这里导入、创建和管理你的项目文件。
Part 2: 核心概念 - 必须知道的几个名词
在开始动手前,你需要理解几个 Unity 的核心概念:
- GameObject (游戏对象): 场景中任何东西的统称,一个角色、一辆车、一个光源、一个摄像头,甚至一个空无一物的容器,都是一个 GameObject。
- Component (组件): 游戏对象的功能模块,一个 GameObject 本身是空的,它通过附加不同的组件来获得功能。
- Transform (变换组件): 每个 GameObject 都自带的核心组件,决定了它的位置、旋转和缩放。
- Mesh Filter (网格过滤器): 提供模型的形状(几何体)。
- Mesh Renderer (网格渲染器): 负责将模型的形状和材质渲染出来,让你能看到它。
- Rigidbody (刚体): 使物体受到物理影响(如重力、碰撞)。
- Script (脚本): 你用 C# 编写的代码,是游戏逻辑的“大脑”,附加到 GameObject 上后,就能控制它的行为。
- Asset (资源): 存放在 Project 视图中的所有文件,如 3D 模型、纹理、音频、预制体等。
- Prefab (预制体): 可以理解为“可复用的游戏对象模板”,你可以将一个配置好的 GameObject(比如一个敌人)保存为 Prefab,然后在场景中反复使用,并且修改 Prefab 会影响到所有它的实例。
- Scene (场景): 一个游戏关卡或一个环境的集合,一个完整的游戏通常由多个场景组成(如主菜单场景、第一关场景等)。
Part 3: 动手实践 - 制作一个“滚动的球”
这个项目将教你如何创建物体、添加脚本、让物体动起来。
步骤 1: 创建一个地面和一个球
- 在 Hierarchy 视图中,右键点击 -> 3D Object -> Plane,这将是我们的地面。
- 再次右键点击 -> 3D Object -> Sphere,这将是我们的球。
- 使用 Scene 视图上方的工具栏,调整视角,让你能清楚地看到球和地面,你可以按住鼠标右键拖动来旋转视角,按住鼠标中键拖动来平移视角,滚动鼠标滚轮来缩放。
步骤 2: 让球可以受物理影响
- 在 Hierarchy 中选中 Sphere。
- 在 Inspector 视图中,点击 Add Component。
- 搜索并添加 Rigidbody 组件,现在球就拥有了物理属性,会受到重力影响往下掉。
步骤 3: 编写控制脚本
-
在 Project 视图中,右键点击 -> Create -> C# Script,命名为
PlayerController。
(图片来源网络,侵删) -
双击
PlayerController脚本,它会用 Visual Studio (或其他你安装的代码编辑器) 打开。 -
删除默认的
Start()和Update()函数内的内容,然后输入以下代码:using UnityEngine; public class PlayerController : MonoBehaviour { // 这个变量将在 Inspector 面板中显示,让你可以在 Unity 里调整速度 public float speed = 10f; // Rigidbody 组件的引用 private Rigidbody rb; // 在游戏开始的第一帧调用 void Start() { // 获取这个物体上的 Rigidbody 组件,并存储在 rb 变量中 rb = GetComponent<Rigidbody>(); } // 每一帧都会调用,用于处理游戏逻辑 void Update() { // 获取水平和垂直输入 (WASD 或 方向键) float moveHorizontal = Input.GetAxis("Horizontal"); float moveVertical = Input.GetAxis("Vertical"); // 根据输入创建一个移动方向向量 Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical); // 使用 Rigidbody 来移动球,这样能更好地处理物理碰撞 // rb.AddForce(movement * speed); // 或者更简单的方式,直接改变速度 rb.velocity = movement * speed; } } -
保存脚本。
步骤 4: 将脚本附加到球上
- 回到 Unity 编辑器。
- 在 Project 视图中,将你刚刚创建的
PlayerController脚本拖拽到 Hierarchy 视图中的 Sphere 上。 - 选中 Sphere,你会在 Inspector 视图中看到脚本组件,并且可以调整
Speed的值。
步骤 5: 运行游戏
- 点击编辑器顶部中央的 ▶ (Play) 按钮。
- Game 视图应该被激活了,使用 WASD 或 方向键 来控制球在平面上滚动。
- 点击 ⏸ (Pause) 按钮可以停止游戏。
恭喜!你已经完成了你的第一个 Unity 交互程序!

Part 4: 进阶项目 - 制作一个“点击消灭方块”的小游戏
这个项目将教你处理用户输入(鼠标点击)、碰撞检测和动态生成物体。
目标: 点击从天而降的方块,方块被点击后消失并得分。
步骤 1: 创建游戏场景
- 创建一个新的 3D 项目。
- 创建一个 Plane 作为地面。
- 创建一个 Main Camera,在 Inspector 中,将它的 Clear Flags 设置为 Solid Color,背景色改为你喜欢的颜色(如浅蓝色)。
- 创建一个 UI 文本来显示分数,在 Hierarchy 中右键 -> UI -> Text - TextMeshPro,它会自动创建一个 Canvas 和 EventSystem,将文本拖到合适的位置,并修改其内容为 "Score: 0"。
步骤 2: 编写方块生成器脚本
-
创建一个 C# 脚本,命名为
Spawner。 -
编写代码,让它在屏幕上方随机位置生成方块。
using UnityEngine; using UnityEngine.UI; // 引入 UI 命名空间 public class Spawner : MonoBehaviour { public GameObject cubePrefab; // 要生成的方块预制体 public float spawnRate = 1f; // 生成间隔 public float topY = 8f; // 生成位置的Y坐标 private float timer = 0f; void Update() { timer += Time.deltaTime; if (timer >= spawnRate) { SpawnCube(); timer = 0f; } } void SpawnCube() { // 随机X和Z坐标 float randomX = Random.Range(-10f, 10f); float randomZ = Random.Range(-10f, 10f); Vector3 spawnPosition = new Vector3(randomX, topY, randomZ); Instantiate(cubePrefab, spawnPosition, Quaternion.identity); } } -
在 Hierarchy 中创建一个空物体,命名为 "Spawner"。
-
将
Spawner脚本拖到这个空物体上。 -
在 Project 视图中,创建一个 3D Object -> Cube,然后把它从 Hierarchy 拖到 Project 视图中,创建成一个 Prefab。
-
将这个 Cube 预制体拖到 Spawner 物体的
Cube Prefab字段里。
步骤 3: 编写方块点击脚本
-
创建一个 C# 脚本,命名为
CubeController。 -
编写代码,让它在被点击时销毁自己并增加分数。
using UnityEngine; using UnityEngine.UI; // 引入 UI 命名空间 public class CubeController : MonoBehaviour { public GameObject scoreTextObject; // 分数文本的引用 private int score = 0; void Start() { // 找到分数文本对象 scoreTextObject = GameObject.Find("ScoreText"); } // 当鼠标点击此物体时触发 void OnMouseDown() { // 增加分数 score++; // 更新文本显示 scoreTextObject.GetComponent<TMPro.TextMeshProUGUI>().text = "Score: " + score.ToString(); // 销毁自己 Destroy(gameObject); } } -
创建一个新的 Cube,将
CubeController脚本附加到它上面。 -
将 Hierarchy 中的 ScoreText 拖到这个新 Cube 的
Score Text Object字段里。 -
将这个配置好的 Cube 拖到 Project 视图中,覆盖掉之前的 Cube Prefab,这样所有由 Spawner 生成的方块都会有这个脚本。
步骤 4: 运行游戏
点击 Play 按钮,方块会从上方不断生成,点击它们,分数就会增加。
Part 5: 学习资源与进阶之路
你已经掌握了 Unity 的基础,接下来是持续学习和探索的阶段。
推荐学习资源
-
官方资源:
- Unity Learn: Unity 官方的免费学习平台,有大量从入门到高级的官方教程和项目。https://learn.unity.com/
- Unity User Manual: 最权威的参考手册,遇到问题时可以查阅。 https://docs.unity3d.com/Manual/index.html
-
视频教程:
- Brackeys (已停更,但仍是经典): YouTube 上最知名的 Unity 教程频道,讲解非常清晰,适合初学者。
- Code Monkey: 内容非常硬核,深入浅出,覆盖面广,从基础到高级都有。
- Sebastian Lague: 专注于算法、程序化生成和高质量视觉效果,能极大提升你的编程和设计思维。
- B站 (Bilibili): 搜索 "Unity 教程",有大量国内UP主制作的免费教程,如“秦元小神仙”、“贾小昆”等。
-
社区与问答:
- Unity Forum: Unity 官方论坛。
- Stack Overflow: 全球最大的程序员问答网站,搜索
unity3d标签下的内容。 - Reddit: r/Unity3D 社区,可以讨论和分享。
进阶之路
- 深入学习 C#: 熟练掌握面向对象编程、设计模式等。
- 熟悉 Unity API: 熟练使用 Unity 提供的各种命名空间,如
UnityEngine,UnityEditor等。 - 学习图形学基础: 了解渲染管线、着色器、光照模型等,能让你的游戏画面更上一层楼。
- 学习游戏设计理论: 了解关卡设计、游戏循环、玩家心理等,让你的游戏更好玩。
- 尝试不同领域: 2D 游戏、VR/AR、移动端开发等,Unity 都能胜任。
- 参与 Game Jam: 在限定时间内(如 48 小时)完成一个小游戏,是锻炼综合能力的绝佳方式。
最重要的建议:多动手,多实践,多思考,多看别人的优秀作品。 祝你在 Unity 的世界里玩得开心!
