Version: 6000.3
语言: 中文
为 2D 游戏设置项目
2D 游戏视角参考

2D 游戏创建工作流程

在创建 2D 游戏之前,您需要确定游戏视角艺术风格

若要创建 2D 游戏,请设置 Unity 项目,然后按以下顺序熟悉相关概念:

  1. 基础

  2. 脚本

  3. 精灵2D 图形对象。如果你习惯于在3D中工作,精灵本质上只是标准纹理,但有一些特殊的技术可以组合和管理精灵纹理,以提高开发过程中的效率和便利性。更多信息
    请参阅术语表

  4. 构建游戏内环境

  5. 角色动画

  6. 图形

  7. 物理 2D

  8. 音频

  9. 用户界面

  10. 分析、优化和测试

  11. 出版

基础

游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表
是 Unity 中的基本对象,用于表示角色、道具、风景等。游戏中的每个对象都是游戏对象。

游戏对象表示游戏中的项目;您放置它们以构建关卡的空间称为场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
.Unity 中的场景始终是 3D 的;当您在 Unity 中制作 2D 游戏时,您通常会选择忽略三维(z 轴),但您也可以在特殊情况下使用它,例如在制作 2.5D 游戏时。

游戏对象的行为由称为组件的功能块定义。以下组件是 2D 游戏的基础:

  • 变换:该变换组件变换组件确定场景中每个对象的位置、旋转和缩放。每个游戏对象都有一个 Transform。更多信息
    请参阅术语表
    确定场景中每个游戏对象的位置、旋转和缩放。每个游戏对象都有一个 Transform 组件。
  • 精灵渲染器一个组件,可让您将图像显示为精灵,以便在 2D 和 3D 场景中使用。更多信息
    请参阅术语表
    :Sprite Renderer 组件渲染 Sprite 并控制它在场景中的外观。
  • 摄像机用于在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
    请参阅术语表
    :捕获世界并向玩家显示的设备。将摄像机标记为 正交(Orthographic) 会从摄像机视图中删除所有透视。这对于制作等距或 2D 游戏最有用。
  • Collider 2D:此组件定义 2D 游戏对象的形状,用于物理碰撞当物理引擎检测到两个游戏对象的碰撞器接触或重叠时,当至少一个游戏对象具有刚体组件并且处于运动状态时,就会发生碰撞。更多信息
    请参阅术语表
    .请参阅2D物理。

组件是 C# 类的 UI 表示形式;您可以使用脚本来更改组件并与之交互,或创建新组件。有关更多详细信息,请参阅脚本部分

脚本

所有 2D 游戏都需要脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表
.脚本响应玩家的输入,并安排游戏中的事件在应该发生的时候发生。

有关如何在 Unity 中使用脚本的详细信息,请参阅脚本概述。另请参阅 Unity Learn 初学者脚本课程

脚本附加到游戏对象,您创建的任何脚本都继承自 MonoBehaviour 类。

精灵

精灵是 2D 图形对象。将精灵用于所有类型的 2D 游戏。例如,您可以将主角的图像导入为精灵。

角色精灵
角色精灵

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

构成角色各个部分的多个精灵,显示在精灵编辑器中
构成角色各个部分的多个精灵,显示在精灵编辑器中

导入和设置精灵

使用 Unity 推荐的设置导入您的 Sprite;请参阅导入和设置精灵

渲染精灵

使用 Sprite Renderer 组件渲染你的 Sprite。例如,你可以使用 Sprite 渲染器来更改 Sprite 的颜色和不透明度。

使用Sprite渲染器调整Sprite的颜色
使用Sprite渲染器调整Sprite的颜色

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

沿 y 轴排序的 Sprite
沿 y 轴排序的 Sprite

要设置精灵的叠加顺序,请使用排序图层

要将游戏对象与 Sprite 渲染器分组,并控制它们渲染其 Sprite 的顺序,请使用 排序组

精灵图集

您可以使用精灵图集(Sprite Atlas一种实用程序,将多个精灵纹理紧紧地打包在称为图集的单个纹理中。更多信息
请参阅术语表
将多个纹理合并为一个组合的纹理。这可以优化您的游戏并节省内存。例如,你可以将与特定角色或用途关联的所有精灵添加到精灵图集中。

精灵图集
精灵图集

请参阅 Sprite Atlas Learn 教程简介

构建游戏内环境

环境设计是指构建游戏关卡和环境的过程。你可以以对你的游戏最有意义的方式组合本节中的环境设计工具;例如,你可以只使用 9-slice 制作一个自上而下的游戏,或者你可以使用 Tilemap 和 SpriteShape 制作一个平台游戏。

9-切片

9-slicing 是一种 2D 技术,允许您重复使用各种尺寸的图像,而无需准备多个资产。Unity 可以动态拉伸和平铺 Sprite 的指定部分,以允许一个 Sprite 作为多种大小的 UI 元素的边框或背景。参见 9 切片精灵

例如,在构建2D关卡时,你可以使用9切片来拉伸精灵以形成形状。

一个 9 片精灵,分为九个部分
一个 9 片精灵,分为九个部分

请参阅使用 9-Slicing for Scalable Sprites Learn 教程

图块地图

图块贴图一种游戏对象,允许您使用图块和网格叠加层快速创建 2D 关卡。更多信息
请参阅术语表
组件是一个存储和处理用于创建 2D 关卡的图块资源的系统。使用 2D Tilemap Editor 包(默认安装)来使用 Tilemaps。

例如,你可以使用图块贴图,通过图块和画笔工具绘制关卡,并定义图块行为的规则。

Tile Palette 窗口,用于编辑 Tilemaps
Tile Palette 窗口,用于编辑 Tilemaps

请参阅 Tilemaps Learn 简介教程。

2D 图块地图附加功能

要向项目添加一些额外的图块地图资源,请安装 2D 图块地图附加组件。该包包含可重用的 2D 和图块地图编辑器脚本,可用于自己的项目。您可以自定义脚本的行为,以创建适合不同场景的新画笔。

等距图块贴图

对于具有等距透视的游戏,您可以创建等距图块地图

精灵形状

与矢量绘图工具类似,SpriteShape 提供了一种更灵活的方式来创建更大的 Sprite,例如外观有机的风景和路径。请参阅精灵形状配置文件

在 SpriteShape 中创建的路径
在 SpriteShape 中创建的路径

请参阅使用 SpriteShape 教程

角色动画

您可以通过三种不同的方式为 2D 角色制作动画:

2D 动画类型 用于
逐帧 艺术原因,如果你想让你的游戏具有经典的动画艺术风格。逐帧动画无论是制作还是运行都是相对资源密集型的。
剪影 当角色不需要逼真的关节时,平滑的骨骼动画。
骨骼的 平滑的骨架动画,其中精灵根据骨骼结构弯曲。当角色需要更有机的感觉时,请使用它。

逐帧

逐帧动画基于传统的赛璐珞动画技术,将动画的每个时刻绘制为单独的图像,这些图像以快速顺序播放,就像在翻页书上翻页一样。

有关信息,请参阅2D动画包手册中的Sprite交换

精灵编辑器中的逐帧动画
精灵编辑器中的逐帧动画

请参阅精灵动画简介学习教程

剪影

在抠图动画中,多个精灵组成一个角色的身体,每一块都会移动,从而给人一种整个角色移动的视觉效果。此动画风格类似于骨架动画(见下文),只是精灵不会弯曲。

精灵编辑器中的抠图动画
精灵编辑器中的抠图动画

骨骼的

使用骨架动画,你可以将一个Sprite或一组Sprite映射到动画骨架上。你可以为角色和对象创建和定义动画骨骼,以定义它们应该如何弯曲和移动。这种方法允许骨骼弯曲和变形精灵,以获得更自然的运动风格。要使用骨架动画,您需要使用 2D 动画包(默认安装)。

有关2D动画工作流程,包括使用骨骼编辑器的指南,请参阅2D动画文档

骨骼编辑器中具有骨骼的角色
骨骼编辑器中具有骨骼的角色

图形

本节介绍使用 Universal 时可用的 2D URP 图形功能渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表
(URP)。

照明

由于您将 URP 与 2D 渲染器一起使用,因此可以使用 Light 2D 组件将优化的 2D 光照应用于 Sprite。有关详细信息,请参阅光源2D简介

这两张图片显示了相同的场景;在左侧图像中,禁用了 2D 光源,在右侧图像中,启用了 2D 光源。使用 2D 光源,您可以使用相同的 Sprite 来创建不同的天气条件或情绪。
这两张图片显示了相同的场景;在左侧图像中,禁用了 2D 光源,在右侧图像中,启用了 2D 光源。使用 2D 光源,您可以使用相同的 Sprite 来创建不同的天气条件或情绪。

请参阅URP Learn中的光照教程

阴影

要定义光源用于确定其投射阴影的形状和属性,请使用 Shadow Caster 2D 组件

Shadow Caster 2D 组件中的阴影强度为 0.5
Shadow Caster 2D 组件中的阴影强度为 0.5

增强的外观和感觉

粒子系统和后期处理图像出现在屏幕上之前通过应用滤镜和效果来改善产品视觉效果的过程。您可以使用后期处理效果来模拟物理相机和胶片属性,例如泛光和景深。更多信息 后期处理、后处理、后处理
请参阅术语表
是可用于为游戏添加润色的可选工具。

粒子系统

你可以使用粒子系统创建动态对象,如火、烟雾或液体,作为使用精灵的替代方法。精灵更适合物理对象。 看粒子系统通过在场景中生成大量小型 2D 图像并为其设置动画来模拟流体实体(如液体、云和火焰)的组件。更多信息
请参阅术语表
.

使用粒子系统和着色器图表创建的火焰效果
使用粒子系统和着色器图表创建的火焰效果

后处理

您可以使用后期处理效果和全屏效果来显着改善游戏的外观。例如,您可以使用这些效果来模拟物理摄像机或电影属性,或创建风格化的视觉效果。

URP 有自己的后处理实现。请参阅通用渲染管线中的后期处理

Lost Crypt 演示使用泛光和晕影后期处理效果
Lost Crypt 演示使用泛光和晕影后期处理效果

物理 2D

物理2D设置定义了2D游戏中物理模拟精度的限制。请参阅2D物理。

视频概述了 Unity 2020.1 中的 2D 物理特性。

了解如何使用 Unity 的 2D物理引擎模拟物理系统各个方面的系统,使物体能够正确加速并受到碰撞、重力和其他力的影响。更多信息
请参阅术语表
,请参阅 2D 物理学习教程

以下 2D 物理工具对于 2D 游戏很有用。

刚体 2D

一个刚体允许游戏对象受到模拟重力和其他力影响的组件。更多信息
请参阅术语表
2D 组件将游戏对象置于物理引擎的控制之下。请参见刚体 2D

刚体 2D 组件
刚体 2D 组件

碰撞体 2D

Collider 2D 组件定义 2D 游戏对象的形状,以实现物理碰撞。您还可以使用碰撞体(Collider) 用于处理对象物理碰撞的不可见形状。碰撞体不需要与对象的网格体形状完全相同 - 在游戏中,粗略的近似值通常更有效且难以区分。更多信息
请参阅术语表
用于输入检测的 2D 组件。例如,在手机游戏中,您可以使用它们使精灵可选择。

可与刚体2D一起使用的碰撞体2D类型包括:

Circle Collider 2D 组件
Circle Collider 2D 组件

触发器

当你将 Collider 2D 设置为 触发器(通过启用其 Is Trigger 属性)时,它不再像物理对象一样运行,并且可以与其他碰撞体相交而不会引起碰撞。相反,当 Collider 进入其空间时,Unity 会调用OnTriggerEnter函数。

选择了 Is Trigger 的 Circle Collider 2D 组件
选择了 Is Trigger 的 Circle Collider 2D 组件

2D 关节

关节将游戏对象附加在一起。只能附加 2D关节 允许刚体组件之间进行动态连接的物理组件,通常允许一定程度的移动,例如铰链。更多信息
请参阅术语表
附加了 Rigidbody 2D 组件的游戏对象,或附加到世界空间中的固定位置。请参见 2D 关节

2D效应器

使用效应器 2D组件游戏对象的功能部分。游戏对象可以包含任意数量的组件。Unity 有许多内置组件,您可以通过编写继承自 MonoBehaviour 的脚本来创建自己的组件。更多信息
请参阅术语表
使用 Collider 2D 组件来引导游戏对象碰撞器相互接触时场景中的物理力。请参见 2D 效应器

音频

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

用户界面

如果您想为游戏添加菜单或帮助,则需要设置用户界面。要设置用户界面,请使用 Unity UI

分析、优化和测试构建

分析

通过分析,您可以了解游戏不同部分的资源密集型程度。你应始终在其目标发布平台上分析你的游戏;请参阅分析应用程序

测试

使用 Unity 测试框架测试您的游戏和代码;请参阅 Unity 测试框架

“测试运行程序”窗口
“测试运行程序”窗口

出版

完成游戏后,就可以发布游戏了。请参阅发布版本

为 2D 游戏设置项目
2D 游戏视角参考