Unity3D:创建 2D 游戏

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生
创建 2D 游戏
在创建 2D 游戏之前,您需要确定游戏视角和美术风格。
要创建 2D 游戏,请设置 Unity 项目,然后按以下顺序熟悉相关概念:
- 基础
- 脚本
- 精灵
- 构建游戏内环境
- 角色动画
- 图形
- 物理 2D
- 音频
- 用户界面
- 分析、优化和测试
- 出版
基础
游戏对象是 Unity 中的基本对象,用于表示角色、道具、风景等。游戏中的每个对象都是一个游戏对象。
游戏对象表示游戏中的物品;放置它们以构建关卡的空间称为场景。Unity 中的场景始终是 3D 的;在 Unity 中制作 2D 游戏时,通常会选择忽略第三维度(z 轴),但也可以在特殊情况下使用它,例如在制作 2.5D 游戏时。
游戏对象的行为由称为组件的功能块定义。以下组件是 2D 游戏的基础:
- 变换:变换组件确定场景中每个游戏对象的位置、旋转和缩放。每个游戏对象都有一个变换组件。
- 精灵渲染器:精灵渲染器组件渲染精灵并控制其在场景中的外观。
- 相机:捕捉并向玩家显示世界的设备。将摄影机标记为正交会从摄影机视图中移除所有透视。这对于制作等距或 2D 游戏非常有用。
- 碰撞体 2D:此组件定义用于物理碰撞的 2D 游戏对象的形状。请参阅 2D 物理。
组件是 C# 类的 UI 表示形式;您可以使用脚本来更改组件并与之交互,或者创建新组件。有关更多详细信息,请参阅脚本部分。
脚本
所有2D游戏都需要脚本。脚本响应来自玩家的输入,并安排游戏中的事件在应该发生的时候发生。
有关如何在 Unity 中使用脚本的详细信息,请参阅脚本概述。另请参阅 Unity 学习初级脚本课程。
脚本附加到游戏对象,您创建的任何脚本都继承自 MonoBehavior 类。
Sprites
Sprites是 2D 图形对象。您可以将Sprites用于所有类型的 2D 游戏。例如,您可以将主角的图像导入为精灵。

您还可以使用精灵集合来构建角色。这使您可以更好地控制角色的移动和动画。

导入和设置Sprites
使用 Unity 推荐的设置导入您的精灵;请参阅导入和设置Sprites。
渲染Sprites
使用精灵渲染器组件来渲染Sprites。例如,您可以使用精灵渲染器更改精灵的颜色和不透明度。

请参阅Sprites渲染器学习简介教程。对精灵进行排序通过分层组织精灵,您可以创建深度错觉。您可以根据许多策略对精灵进行排序。有关完整详细信息,请参阅对Sprites进行排序。例如,您可以沿 y 轴对精灵进行排序,以便将较高的精灵排序在较低的精灵后面,以使较高的精灵比较低的精灵看起来更远。

要设置精灵的叠加顺序,请使用排序图层。
要使用精灵渲染器对游戏对象进行分组,并控制它们渲染Sprites的顺序,请使用排序组。
精灵图集
您可以使用精灵图集将多个纹理合并为一个组合纹理。这可以优化您的游戏并节省内存。例如,您可以将与特定角色或目的相关的所有精灵添加到精灵图集中。

请参阅Sprites图集学习简介教程。
构建游戏内环境
环境设计是指构建游戏关卡和环境的过程。你可以以对游戏最有意义的方式组合本节中的环境设计工具;例如,您可以仅使用9切片制作自上而下的游戏,也可以使用Tilemap和SpriteShape在平台游戏上制作侧面。
9 切片
9 切片是一种 2D 技术,允许您重复使用各种大小的图像,而无需准备多个资产。Unity 可以动态拉伸和平铺精灵的指定部分,以允许一个精灵充当多种大小的 UI 元素的边框或背景。参见 9 切片Sprites。
例如,在构建 2D 关卡时,您可以使用 9 切片拉伸精灵以使其成形。

请参阅使用 9 切片进行可缩放Sprites学习教程。
磁贴地图
Tilemap 组件是一个存储和处理用于创建 2D 关卡的 Tile 资产的系统。使用 2D 瓦片地图编辑器包(默认安装)使用图块地图。
例如,您可以使用图块贴图通过图块和画笔工具绘制关卡,并定义图块的行为规则。

请参阅切片地图学习简介教程。
2D 瓦片地图附加功能
要向项目添加一些额外的图块地图资源,请安装 2D 瓦片地图附加包。此软件包包含可重用的 2D 和瓦片地图编辑器脚本,可用于您自己的项目。您可以自定义脚本的行为,以创建适合不同方案的新画笔。
等距拼贴地图
对于具有等轴测透视的游戏,您可以创建等轴测图块地图。
精灵形状
与矢量绘图工具类似,SpriteShape 提供了一种更灵活的方法来创建更大的精灵,例如有机外观的风景和路径。请参阅精灵形状配置文件。

请参阅使用 SpriteShape 教程。
角色动画
有三种不同的方法可以为 2D 角色制作动画:
2D 动画类型 | 用于 |
---|---|
逐帧 | 艺术原因,如果你想让你的游戏有一个经典的动画艺术风格。逐帧动画相对需要大量资源,无论是制作还是运行。 |
剪影 | 流畅的骨骼动画,当角色不需要逼真的清晰度时。 |
骨骼的 | 平滑的骨骼动画,精灵根据骨骼结构弯曲。当角色需要更有机的感觉时,请使用它。 |
逐帧
逐帧动画基于传统的 cel 动画技术,即将动画的每个时刻绘制为单独的图像,这些图像以快速顺序播放,就像在翻书上翻页一样。
要执行逐帧动画,请按照逐帧动画工作流程进行操作。

请参阅Sprites动画学习简介教程。
剪影
在抠图动画中,多个精灵组成一个角色的身体,每个精灵移动以产生整个角色移动的视觉效果。此动画样式类似于骨骼动画(见下文),只是精灵不会弯曲。

骨骼的
使用骨骼动画,您可以将一个精灵或一组精灵映射到动画骨架上。您可以为角色和对象创建和定义动画骨骼,以定义它们应如何弯曲和移动。这种方法允许骨骼弯曲和变形精灵,以获得更自然的运动风格。若要使用骨骼动画,需要使用 2D 动画包(默认安装)。
有关 2D 动画工作流程(包括使用骨骼编辑器的指南),请参阅 2D 动画文档。

图形
本节介绍使用通用渲染管线 (URP) 时的图形选项。
照明
由于您将 URP 与 2D 渲染器配合使用,因此可以使用光照 2D 组件将优化的 2D 光照应用于精灵。有关详细信息,请参阅灯光 2D 简介。

要设置照明:
- 准备好你的精灵进行光照。有关详细信息,请参阅为光照准备Sprites。
- 设置法线贴图和蒙版纹理。2D 光源可以与链接到精灵的法线贴图和蒙版纹理进行交互,以创建高级光照效果,例如法线贴图。请参阅设置法线贴图和蒙版纹理。
- 创建 2D 光照游戏对象;请参见 2D 光源属性。
- 配置 2D 渲染器数据资产;请参阅配置 2D 渲染器资源。
- (可选)如果要将 2D 灯光效果应用于像素艺术游戏,请参阅 2D 像素完美。
请参阅 URP 学习中的照明教程。
阴影
要定义光源用于确定其投射阴影的形状和属性,请使用阴影投射器 2D 组件。将光源的阴影强度增加到零以上。

增强的外观和感觉
粒子系统和后期处理是可选工具,可用于为游戏添加润色。
粒子系统
您可以使用粒子系统创建动态对象,如火、烟或液体,作为使用精灵的替代方法。精灵更适合物理对象。请参阅粒子系统。

后处理
您可以使用后处理效果和全屏效果来显著改善游戏的外观。例如,可以使用这些效果来模拟物理摄像机或胶片属性,或创建风格化的视觉效果。
URP 有自己的后处理实现。请参阅通用渲染管线中的后期处理。

物理 2D
物理 2D 设置定义了对 2D 游戏中物理模拟精度的限制。请参阅 2D 物理。
此视频概述了 Unity 2020.1 中的 2D 物理功能。
要了解如何使用 Unity 的 2D 物理引擎,请参阅 2D 物理学习教程。
以下 2D 物理工具对 2D 游戏非常有用。
- 刚体 2D
- 2D 碰撞体
- 触发器
- 2D 关节
- 2D 效果器
刚体 2D
刚体 2D 组件将游戏对象置于物理引擎的控制之下。请参阅刚体 2D。

2D 碰撞体
碰撞体 2D 组件定义 2D 游戏对象的形状,以便进行物理碰撞。您还可以使用碰撞体 2D 组件进行输入检测。例如,在移动游戏中,您可以使用它们使精灵可选。
可用于刚体 2D 的碰撞体 2D 类型包括:
- 圆形对撞机 2D
- 箱式碰撞体 2D
- 多边形对撞机 2D
- 边缘碰撞体 2D
- 2D 对撞机胶囊
- 二维复合对撞机

触发器
将 2D 碰撞体设置为触发器(通过启用其“是触发器”属性)时,它不再表现为物理对象,并且可以与其他碰撞体相交而不会引起碰撞。相反,当碰撞体进入其空间时,Unity 会在触发器游戏对象的脚本上调用该函数。OnTriggerEnter

2D 关节
关节将游戏对象连接在一起。您只能将 2D 关节附加到附加了刚体 2D 组件的游戏对象,或附加到世界空间中的固定位置。请参见 2D 关节。
2D 效果器
将效果器 2D 组件与碰撞体 2D 组件结合使用,以便在游戏对象碰撞体相互接触时引导场景中的物理力。请参阅 2D 效果器。
音频
您可以在 Unity 中为游戏添加背景音乐和音效;请参阅音频概述。使用第三方软件创建音频,并使用推荐的设置将其导入 Unity。
用户界面
如果要向游戏添加菜单或帮助,则需要设置用户界面。要设置用户界面,请使用 Unity UI。
分析、优化和测试构建
性能分析
通过性能分析,您可以查看游戏不同部分的资源密集程度。您应该始终在其目标发布平台上分析您的游戏;请参阅分析应用程序。
优化
分析后,可以使用结果进行性能改进和优化。请参阅了解 Unity 中的优化。
测试
使用 Unity 测试框架测试您的游戏和代码;请参见 Unity 测试框架。

出版
完成游戏后,即可发布游戏。请参阅发布版本。

此文由3D建模学习工作室整理翻译,转载请注明出处!