Unity3D:创建 3D 游戏

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生
创建 3D 游戏
要创建 3D 游戏,请设置 Unity 项目,然后按以下顺序熟悉相关概念:
- 基础
- 脚本
- 3D 资产
- 构建游戏内环境
- 动画
- 图形
- 音频
- 物理
- 用户界面
基础
游戏对象是 Unity 中的基本对象,用于表示角色、道具、风景等。游戏中的每个对象都是一个游戏对象。
游戏对象存在于称为场景的 3D 环境中。您可以将场景视为游戏关卡,但它也可能代表菜单、游戏结束时的演职员表或其他完全不同的东西。
游戏对象的行为由称为组件的功能块定义。您可以将多个组件附加到游戏对象。以下组件是 3D 游戏的基础:
- 变换:变换组件确定场景中每个游戏对象的位置、旋转和缩放。每个游戏对象都有一个变换组件。
- 网格过滤器:此组件定义 3D 游戏对象的形状。
- 网格渲染器:此组件定义网格过滤器定义的 3D 形状的外观。
- 摄像机:专门配置的游戏对象,用于捕获并向玩家显示世界。
- 刚体:刚体允许游戏对象与物理系统交互,包括重力和碰撞。请参阅本指南的物理部分。
- 碰撞体:此组件定义 3D 游戏对象的形状,用于物理碰撞。
脚本
Unity 允许您使用脚本创建自己的组件。脚本允许您触发游戏事件、随时间修改组件属性以及响应用户输入。 Unity 原生支持 C# 编程语言。 以下是如何在游戏中使用脚本的一些示例:
- 接收来自玩家的输入,并让游戏对象根据该输入移动或执行操作。
- 设置打开相关赢或输场景的输赢状态,以创建完整的游戏循环。
- 基于其他变量影响游戏对象的组件,例如其变换、动画或渲染器。
有关如何在 Unity 中使用脚本的详细信息,请参阅脚本概述。 要了解脚本编写的基础知识,请遵循 Unity 学习初级脚本课程。 有关更深入的指导,请参阅示例项目“使用代码创建”和“创建者工具包:初学者代码”。
3D 资产
模型是对象的 3D 表示。3D 游戏的大部分视觉效果由模型组成,例如角色、可交互对象和玩家周围的世界。
您可以使用 Probuilder 等工具在 Unity 中创建模型。但是,这些最适合原型设计,而不是最终产品。
要向最终产品添加更多精美的 3D 资源,请在 3D 建模软件中创建 3D 模型、材质和纹理,然后将其导入 Unity。

导入 3D 模型文件
Unity 使用 .fbx 模型格式。您还可以使用其他常见的原生模型格式(例如,.max、.blend、.mb、.ma),Unity 会在导入后将它们转换为 .fbx。
将模型导入 Unity 以在项目中使用它们。
渲染网格
3D 网格是 3D 模型的结构构建。它由多个多边形形状组成。要将 3D 模型添加到游戏对象,请向游戏对象添加网格过滤器。网格渲染器组件在场景中渲染网格;要确保模型出现在游戏中,请将网格渲染器添加到具有网格过滤器组件的任何游戏对象。
材质
材质组合有关表面视觉外观的信息,例如纹理、颜色色调和着色器。使用材质定义如何渲染曲面。
- 纹理是导入到 Unity 中的任何 2D 图像文件。使用纹理包裹网格并向模型添加精细细节。
- 使用颜色色调更改纹理的颜色。
- 着色器是一系列指令,用于确定 Unity 如何在屏幕上显示游戏对象。使用着色器影响 Unity 根据光照输入和材质配置渲染每个像素的方式。
请参阅有关材料设计的学习教程。
构建游戏内环境

环境设计是为游戏玩法创造环境的过程。您可以在 Unity 编辑器中同时设计和构建环境,也可以在 Unity 外部设计环境,然后在 Unity 中构建环境。
要构建游戏内环境,请将游戏对象添加到场景中,并根据您的偏好和设计对其进行定位。 除了在场景中手动放置模型外,Unity 编辑器还包括一组内置的地形功能,可用于向游戏添加地形。在编辑器中,您可以创建多个地形图块,调整地形的高度或外观,以及向其添加树木或草地。阅读有关创建和使用地形的更多信息。
动画
您可以导入在其他程序中制作的动画,或直接在编辑器中对资源进行动画处理。 有关 3D 动画的更多信息,请参阅 Unity 学习课程 3D 动画系统简介。

导入动画
当您导入带有动画的模型时,Unity 可以导入动画剪辑。这意味着您可以在另一个程序中对模型进行动画处理,然后在 Unity 中访问和操作剪辑。
在 Unity 中为模型设置动画
使用“动画”窗口直接在 Unity 中创建和修改动画剪辑。 使用关键帧动画向场景中的游戏对象添加简单动画,例如更改其位置、大小或旋转。
控制动画
若要控制播放哪些动画剪辑,可以使用 Animator 类直接在脚本中调用它们,或者在“动画编辑器”窗口中创建和修改动画编辑器控制器。
您可以使用“动画器”窗口执行以下操作:
- 创建和设置动画控制器
- 使用动画剪辑创建动画器状态
- 创建动画器参数,脚本可以访问这些参数或为其分配值
- 创建动画器过渡,指定状态何时应更改以及状态之间的混合应花费多长时间的条件(基于参数)
图形
照明
照亮场景,为您的环境增添深度和氛围,并帮助玩家体验您创建的游戏世界。 要设置照明:
- 创建光源。在“层次结构”窗口中单击鼠标右键以打开“游戏对象”菜单,选择光源,然后选择要添加到场景中的光源类型。请参阅光源类型。
- 将光源放置在场景中。调整灯光的颜色、强度和位置,直到达到所需的效果。请参阅使用光源。
- 完善您的照明。例如,您可以选择不同的灯光模式,或添加 Cookie 蒙版来创建阴影。

请参阅在 URP 中学习 Unity 光照教程。
音频
您可以在 Unity 中为游戏添加背景音乐和音效;请参阅音频概述。使用第三方软件创建音频,并使用推荐的设置将其导入 Unity。
物理

使用 Unity 的物理引擎来控制游戏对象的交互方式。您可以使用它来复制重力和机制等力,这些力定义了游戏对象在现实世界中碰撞时的行为。您还可以配置物理设置以创建自定义物理以适合您的游戏设计,这可能不是对现实世界的准确模拟。 要了解如何使用 Unity 的物理引擎,请参阅 Unity 学习物理教程。有关详细信息,请参阅用户手册的物理部分。
要为游戏对象设置物理:
- 要让您的游戏对象受到物理系统的影响,并对重力和碰撞等因素做出反应,请添加刚体组件。
- 使用碰撞体使游戏对象能够与场景中的其他游戏对象进行交互。例如,带有碰撞体的游戏对象可以移动或被另一个带有碰撞体的游戏对象移动。
- 为了能够在两个游戏对象相交时在代码中调用函数,请添加碰撞体并使其成为触发器。
此文由3D建模学习工作室整理翻译,转载请注明出处!