杰瑞科技汇

Unity3D入门教程该怎么学?

Unity 3D 入门教程:从零开始制作你的第一个游戏

本教程分为几个主要部分:

Unity3D入门教程该怎么学?-图1
(图片来源网络,侵删)
  1. Part 1: 准备工作 - 安装与初识
  2. Part 2: 核心概念 - 必须知道的几个名词
  3. Part 3: 动手实践 - 制作一个“滚动的球”
  4. Part 4: 进阶项目 - 制作一个“点击消灭方块”的小游戏
  5. 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: 创建一个地面和一个球

  1. Hierarchy 视图中,右键点击 -> 3D Object -> Plane,这将是我们的地面。
  2. 再次右键点击 -> 3D Object -> Sphere,这将是我们的球。
  3. 使用 Scene 视图上方的工具栏,调整视角,让你能清楚地看到球和地面,你可以按住鼠标右键拖动来旋转视角,按住鼠标中键拖动来平移视角,滚动鼠标滚轮来缩放。

步骤 2: 让球可以受物理影响

  1. Hierarchy 中选中 Sphere
  2. Inspector 视图中,点击 Add Component
  3. 搜索并添加 Rigidbody 组件,现在球就拥有了物理属性,会受到重力影响往下掉。

步骤 3: 编写控制脚本

  1. Project 视图中,右键点击 -> Create -> C# Script,命名为 PlayerController

    Unity3D入门教程该怎么学?-图2
    (图片来源网络,侵删)
  2. 双击 PlayerController 脚本,它会用 Visual Studio (或其他你安装的代码编辑器) 打开。

  3. 删除默认的 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. 保存脚本。

步骤 4: 将脚本附加到球上

  1. 回到 Unity 编辑器。
  2. Project 视图中,将你刚刚创建的 PlayerController 脚本拖拽Hierarchy 视图中的 Sphere 上。
  3. 选中 Sphere,你会在 Inspector 视图中看到脚本组件,并且可以调整 Speed 的值。

步骤 5: 运行游戏

  1. 点击编辑器顶部中央的 ▶ (Play) 按钮。
  2. Game 视图应该被激活了,使用 WASD方向键 来控制球在平面上滚动。
  3. 点击 ⏸ (Pause) 按钮可以停止游戏。

恭喜!你已经完成了你的第一个 Unity 交互程序!

Unity3D入门教程该怎么学?-图3
(图片来源网络,侵删)

Part 4: 进阶项目 - 制作一个“点击消灭方块”的小游戏

这个项目将教你处理用户输入(鼠标点击)、碰撞检测和动态生成物体。

目标: 点击从天而降的方块,方块被点击后消失并得分。

步骤 1: 创建游戏场景

  1. 创建一个新的 3D 项目。
  2. 创建一个 Plane 作为地面。
  3. 创建一个 Main Camera,在 Inspector 中,将它的 Clear Flags 设置为 Solid Color,背景色改为你喜欢的颜色(如浅蓝色)。
  4. 创建一个 UI 文本来显示分数,在 Hierarchy 中右键 -> UI -> Text - TextMeshPro,它会自动创建一个 Canvas 和 EventSystem,将文本拖到合适的位置,并修改其内容为 "Score: 0"。

步骤 2: 编写方块生成器脚本

  1. 创建一个 C# 脚本,命名为 Spawner

  2. 编写代码,让它在屏幕上方随机位置生成方块。

    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);
        }
    }
  3. Hierarchy 中创建一个空物体,命名为 "Spawner"。

  4. Spawner 脚本拖到这个空物体上。

  5. Project 视图中,创建一个 3D Object -> Cube,然后把它从 Hierarchy 拖到 Project 视图中,创建成一个 Prefab

  6. 将这个 Cube 预制体拖到 Spawner 物体的 Cube Prefab 字段里。

步骤 3: 编写方块点击脚本

  1. 创建一个 C# 脚本,命名为 CubeController

  2. 编写代码,让它在被点击时销毁自己并增加分数。

    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);
        }
    }
  3. 创建一个新的 Cube,将 CubeController 脚本附加到它上面。

  4. Hierarchy 中的 ScoreText 拖到这个新 Cube 的 Score Text Object 字段里。

  5. 将这个配置好的 Cube 拖到 Project 视图中,覆盖掉之前的 Cube Prefab,这样所有由 Spawner 生成的方块都会有这个脚本。

步骤 4: 运行游戏

点击 Play 按钮,方块会从上方不断生成,点击它们,分数就会增加。


Part 5: 学习资源与进阶之路

你已经掌握了 Unity 的基础,接下来是持续学习和探索的阶段。

推荐学习资源

  1. 官方资源:

  2. 视频教程:

    • Brackeys (已停更,但仍是经典): YouTube 上最知名的 Unity 教程频道,讲解非常清晰,适合初学者。
    • Code Monkey: 内容非常硬核,深入浅出,覆盖面广,从基础到高级都有。
    • Sebastian Lague: 专注于算法、程序化生成和高质量视觉效果,能极大提升你的编程和设计思维。
    • B站 (Bilibili): 搜索 "Unity 教程",有大量国内UP主制作的免费教程,如“秦元小神仙”、“贾小昆”等。
  3. 社区与问答:

    • Unity Forum: Unity 官方论坛。
    • Stack Overflow: 全球最大的程序员问答网站,搜索 unity3d 标签下的内容。
    • Reddit: r/Unity3D 社区,可以讨论和分享。

进阶之路

  • 深入学习 C#: 熟练掌握面向对象编程、设计模式等。
  • 熟悉 Unity API: 熟练使用 Unity 提供的各种命名空间,如 UnityEngine, UnityEditor 等。
  • 学习图形学基础: 了解渲染管线、着色器、光照模型等,能让你的游戏画面更上一层楼。
  • 学习游戏设计理论: 了解关卡设计、游戏循环、玩家心理等,让你的游戏更好玩。
  • 尝试不同领域: 2D 游戏、VR/AR、移动端开发等,Unity 都能胜任。
  • 参与 Game Jam: 在限定时间内(如 48 小时)完成一个小游戏,是锻炼综合能力的绝佳方式。

最重要的建议:多动手,多实践,多思考,多看别人的优秀作品。 祝你在 Unity 的世界里玩得开心!

分享:
扫描分享到社交APP
上一篇
下一篇