要创建 2D 游戏,请设置 Unity 项目,然后按以下顺序熟悉相关概念:
游戏对象是 Unity 中的基本对象,表示角色、道具和景物等。游戏中的每个对象都是一个游戏对象。
游戏对象表示游戏中的项;放置这些项来构建关卡的空间称为场景。Unity 中的场景始终是 3D;在 Unity 中制作 2D 游戏时,通常会选择忽略第三个维度(z 轴),但也可以在特殊情况下使用它,例如在制作 2.5D 游戏时。
游戏对象的行为由称为组件的功能块定义。以下组件对于 2D 游戏至关重要:
组件是 C# 类的用户界面可视元素;您可以使用脚本来更改组件并与之交互,或创建新组件。请参阅脚本部分以了解更多详细信息。
所有 2D 游戏都需要脚本。脚本响应玩家的输入并安排游戏中应发生的事件,这样事件就能按安排的顺序发生。
有关如何在 Unity 中使用脚本的详细信息,请参阅脚本概述。另请参阅 Unity 脚本入门学习教程。
脚本会附加到游戏对象上,而您创建的任何脚本都继承自 MonoBehaviour 类。
精灵是 2D 图形对象。精灵可用于所有类型的 2D 游戏。例如,可以将主角的图像导入为精灵。
还可以使用一组精灵来构建角色。这样可以更好地控制角色的移动和动画效果。
使用 Unity 的建议设置导入精灵;请参阅导入和设置精灵。
使用 Sprite Renderer 组件可以渲染精灵。例如,可以使用 Sprite Renderer 更改精灵的颜色和不透明度。
请参阅 Sprite Renderer 简介学习教程。通过按层组织精灵对精灵进行排序,可以产生深度错觉。您可以根据多种策略对精灵进行排序。请参阅精灵排序,查看详细信息。例如,可以沿 Y 轴对精灵进行排序,这样位置较高的精灵就会排在位置较低的精灵后面,从而使位置较高的精灵看起来比位置较低的精灵更远。
要设置精灵的覆盖顺序,请使用层排序。
要使用 Sprite Renderers 对游戏对象进行分组并控制它们渲染精灵的顺序组排序,可以使用组排序。
可以使用精灵图集将多个纹理合并为一个组合纹理。这样可以优化游戏并节省内存。例如,可以将与特定角色或目的关联的所有精灵添加到精灵图集中。
请参阅精灵图集简介学习教程。
环境设计是指构建游戏关卡和环境的过程。可以以最适合游戏的方式组合本节中的环境设计工具;例如,仅使用 9 切片即可制作俯视游戏,也可以使用瓦片地图和 SpriteShape 在平台上制作一个侧面。
9 切片是一种 2D 技术,可用于以各种尺寸复用图像,而无需准备多个资源。Unity 可以动态拉伸和平铺精灵的指定部分,使一个精灵能够作为多种尺寸的__ UI__(即用户界面,User Interface)让用户能够与您的应用程序进行交互。Unity 目前支持三种 UI 系统。更多信息
See in Glossary 元素的边框或背景。请参阅 9 切片精灵。
例如,在构建 2D 关卡时,可以使用 9 切片来拉伸精灵以调整形状。
瓦片地图组件是一个存储和处理瓦片资源以便创建 2D 关卡的系统。可通过 2D 瓦片地图编辑器包(默认安装)使用瓦片地图。
例如,可以通过瓦片地图使用瓦片和画笔工具绘制关卡,并定义瓦片行为规则。
请参阅瓦片地图简介学习教程。
要将一些额外的瓦片地图资源添加到项目中,请安装 2D Tilemap Extras 包。此包包含可用于您自己的项目的可重用 2D 和瓦片地图编辑器脚本。可以自定义脚本的行为来创建适合不同场景的新画笔。
对于具有等距视角的游戏,可以创建等距瓦片地图。
与矢量绘制工具类似,SpriteShape 提供了一种更灵活的方法来创建更大的精灵,例如有机景观和路径。请参阅精灵形状配置文件。
可通过三种不同方式为 2D 角色生成动画效果:
| 2D 动画类型 | 适用于 |
|---|---|
| 逐帧 | 如果希望游戏具有经典的动画艺术风格,可考虑艺术原因。逐帧动画的制作和运行都具有资源消耗较高的特点。 |
| Cutout | 当角色不需要逼真的接合时,可考虑平滑的骨骼动画。 |
| 骨骼 | 平滑的骨骼动画,精灵根据骨骼结构弯曲。当角色需要更有机的质感时,请使用此选项。 |
逐帧动画基于传统的 cel 动画技术,将动画的每个时刻绘制为单独的图像,这些图像以极快的顺序播放,就像书本快速翻页一样。
要执行逐帧动画,请遵循逐帧动画工作流程。
请参阅精灵动画简介学习教程。
在 Cutout 动画中,由多个精灵组成角色的身体,通过每个精灵的移动来提供整个角色移动的视觉效果。此动画风格类似于骨骼动画(见下文),不同之处在于精灵不会弯曲。
使用骨骼动画,可将一个或一组精灵映射到动画骨骼上。可以为角色和对象创建和定义动画骨骼,定义它们应该如何弯曲和移动。此方法可使骨骼弯曲和精灵变形,以获得更自然的移动风格。要使用骨骼动画,需要使用 2D 动画包(默认安装)。
有关 2D 动画工作流程,包括骨骼编辑器的使用指南,请参阅 2D 动画文档。
本节介绍使用通用渲染管线 (URP) 时可用的 2D URP 图形功能。
由于将 URP 与 2D 渲染器结合使用,因此可以使用 Lights 2D 组件将优化的 2D 光照应用于精灵。有关详细信息,请参阅 Lights 2D 简介。
请参阅 URP 中的光照学习教程。
要定义光源根据什么形状和属性来确定投射阴影,需使用 Shadow Caster 2D 组件。
粒子系统和后期处理是可选工具,可用于为游戏增添光泽。
可以使用粒子系统来创建火焰、烟雾或液体等动态对象,作为使用精灵的替代方案。精灵更适合物理对象。请参阅粒子系统。
可以使用后期处理效果和全屏效果来显著改善游戏的观感。例如,可以使用这些效果模拟物理摄像机和胶片属性,或创建风格化的视觉效果。
URP 有自己的后期处理实现方式。请参阅通用渲染管线中的后期处理。
Physics 2D 设置定义了 2D 游戏中物理模拟精度的限值。请参阅 2D Physics。
本视频简要介绍了 Unity 2020.1 中的 2D 物理功能。
要了解如何使用 Unity 的 2D 物理引擎,请参阅 2D Physics 学习教程。
以下 2D 物理工具适用于 2D 游戏。
2D 刚体组件将游戏对象置于物理引擎的控制之下。请参阅 2D 刚体。
2D 碰撞体组件可定义用于物理碰撞的 2D 游戏对象的形状。还可以使用 2D 碰撞体组件进行输入检测。例如,在手机游戏中,可以使用它们使精灵成为可选项。
可与 2D 刚体结合使用的 2D 碰撞体类型为:
将 2D 碰撞体设置为触发器时(通过启用其 Is Trigger 属性),它不再像物理对象那样行动,并且可以与其他碰撞体相交而不会导致碰撞。相反,当碰撞体进入其空间时,触发器将在触发器游戏对象的脚本上调用 OnTriggerEnter 函数。
关节将游戏对象连接在一起。只能将 2D 关节附加到游戏对象(已附加 2D 刚体组件)上或者附加到世界空间中的固定位置上。请参阅 2D 关节。
通过将 2D 效应器组件与 2D 碰撞体组件结合使用,可在游戏对象碰撞体相互接触时在项目中引导物理作用力。请参阅 2D 效应器。
可以在 Unity 中为游戏添加背景音乐和音效;请参阅音频概述。使用第三方软件来创建音频,并使用建议的设置将其导入 Unity。
如果要在游戏中添加菜单或帮助,则需要设置用户界面。要设置用户界面,请使用 Unity UI。
通过性能分析可以查看游戏的不同部分的资源消耗程度。应始终在游戏的目标发布平台上对其进行性能分析;请参阅分析应用程序性能。
进行性能分析后,可以使用结果进行性能改进和优化。请参阅了解 Unity 中的优化
使用 Unity 测试框架测试游戏和代码;请参阅 Unity 测试框架。
完成游戏后,即可发布游戏。请参阅发布构建。