Version: Unity 6.0 (6000.0)
语言 : 中文
为 2D 游戏设置项目
2D 游戏视角参考

2D 游戏创建工作流程

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

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

  1. 基础知识

  2. 脚本

  3. 精灵

  4. 构建游戏内环境

  5. 角色动画

  6. 图形

  7. 物理 2D

  8. 音频

  9. 用户界面

  10. 性能分析、优化和测试

  11. 发布

基础知识

游戏对象是 Unity 中的基本对象,表示角色、道具和景物等。游戏中的每个对象都是一个游戏对象。

游戏对象表示游戏中的项;放置这些项来构建关卡的空间称为场景。Unity 中的场景始终是 3D;在 Unity 中制作 2D 游戏时,通常会选择忽略第三个维度(z 轴),但也可以在特殊情况下使用它,例如在制作 2.5D 游戏时。

游戏对象的行为由称为组件的功能块定义。以下组件对于 2D 游戏至关重要:

  • Transform:Transform 组件确定每个游戏对象在场景中的 Position、Rotation 和 Scale。每个游戏对象都有一个 Transform 组件。
  • Sprite Renderer:Sprite Renderer 组件渲染精灵并控制其在场景中的外观。
  • Camera:为玩家捕捉和展示世界的设备。将一台 Camera 标记为正交,就会从 Camera 视图移除全部透视摄像机。此模式最常用于创建等距视图游戏或 2D 游戏。
  • Collider 2D:此组件可定义用于物理碰撞的 2D 游戏对象的形状。请参阅 2D Physics

组件是 C# 类的用户界面可视元素;您可以使用脚本来更改组件并与之交互,或创建新组件。请参阅脚本部分以了解更多详细信息。

脚本

所有 2D 游戏都需要脚本。脚本响应玩家的输入并安排游戏中应发生的事件,这样事件就能按安排的顺序发生。

有关如何在 Unity 中使用脚本的详细信息,请参阅脚本概述。另请参阅 Unity 脚本入门学习教程。

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

精灵

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

一个角色精灵
一个角色精灵

还可以使用一组精灵来构建角色。这样可以更好地控制角色的移动和动画效果。

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

导入和设置精灵

使用 Unity 的建议设置导入精灵;请参阅导入和设置精灵

渲染精灵

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

使用 Sprite Renderer 调整精灵的颜色
使用 Sprite Renderer 调整精灵的颜色

请参阅 Sprite Renderer 简介学习教程。通过按层组织精灵对精灵进行排序,可以产生深度错觉。您可以根据多种策略对精灵进行排序。请参阅精灵排序,查看详细信息。例如,可以沿 Y 轴对精灵进行排序,这样位置较高的精灵就会排在位置较低的精灵后面,从而使位置较高的精灵看起来比位置较低的精灵更远。

沿 Y 轴排序的精灵
沿 Y 轴排序的精灵

要设置精灵的覆盖顺序,请使用层排序

要使用 Sprite Renderers 对游戏对象进行分组并控制它们渲染精灵的顺序组排序,可以使用组排序

精灵图集

可以使用精灵图集将多个纹理合并为一个组合纹理。这样可以优化游戏并节省内存。例如,可以将与特定角色或目的关联的所有精灵添加到精灵图集中。

一个精灵图集
一个精灵图集

请参阅精灵图集简介学习教程

构建游戏内环境

环境设计是指构建游戏关卡和环境的过程。可以以最适合游戏的方式组合本节中的环境设计工具;例如,仅使用 9 切片即可制作俯视游戏,也可以使用瓦片地图和 SpriteShape 在平台上制作一个侧面。

9 切片

9 切片是一种 2D 技术,可用于以各种尺寸复用图像,而无需准备多个资源。Unity 可以动态拉伸和平铺精灵的指定部分,使一个精灵能够作为多种尺寸的__ UI__(即用户界面,User Interface)让用户能够与您的应用程序进行交互。Unity 目前支持三种 UI 系统。更多信息
See in Glossary
元素的边框或背景。请参阅 9 切片精灵

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

一个 9 切片精灵(分为九个部分)
一个 9 切片精灵(分为九个部分)

请参阅如何使用 9 切片制作可缩放精灵的学习教程

瓦片地图

瓦片地图组件是一个存储和处理瓦片资源以便创建 2D 关卡的系统。可通过 2D 瓦片地图编辑器包(默认安装)使用瓦片地图。

例如,可以通过瓦片地图使用瓦片和画笔工具绘制关卡,并定义瓦片行为规则。

Tile Palette 窗口,用于编辑瓦片地图
Tile Palette 窗口,用于编辑瓦片地图

请参阅瓦片地图简介学习教程

2D Tilemap Extras

要将一些额外的瓦片地图资源添加到项目中,请安装 2D Tilemap Extras 包。此包包含可用于您自己的项目的可重用 2D 和瓦片地图编辑器脚本。可以自定义脚本的行为来创建适合不同场景的新画笔。

等距瓦片地图

对于具有等距视角的游戏,可以创建等距瓦片地图

SpriteShape

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

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

请参阅如何使用 SpriteShape 的教程

角色动画

可通过三种不同方式为 2D 角色生成动画效果:

2D 动画类型 适用于
逐帧 如果希望游戏具有经典的动画艺术风格,可考虑艺术原因。逐帧动画的制作和运行都具有资源消耗较高的特点。
Cutout 当角色不需要逼真的接合时,可考虑平滑的骨骼动画。
骨骼 平滑的骨骼动画,精灵根据骨骼结构弯曲。当角色需要更有机的质感时,请使用此选项。

逐帧

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

要执行逐帧动画,请遵循逐帧动画工作流程

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

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

Cutout

在 Cutout 动画中,由多个精灵组成角色的身体,通过每个精灵的移动来提供整个角色移动的视觉效果。此动画风格类似于骨骼动画(见下文),不同之处在于精灵不会弯曲。

精灵编辑器中的 Cutout 动画
精灵编辑器中的 Cutout 动画

骨骼

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

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

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

图形

本节介绍使用通用渲染管线 (URP) 时可用的 2D URP 图形功能

光照

由于将 URP 与 2D 渲染器结合使用,因此可以使用 Lights 2D 组件将优化的 2D 光照应用于精灵。有关详细信息,请参阅 Lights 2D 简介

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

请参阅 URP 中的光照学习教程

Shadows

要定义光源根据什么形状和属性来确定投射阴影,需使用 Shadow Caster 2D 组件

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

增强的外观和质感

粒子系统和后期处理是可选工具,可用于为游戏增添光泽。

粒子系统

可以使用粒子系统来创建火焰、烟雾或液体等动态对象,作为使用精灵的替代方案。精灵更适合物理对象。请参阅粒子系统

使用粒子系统和 Shader Graph for 2D 创建的火焰效果
使用粒子系统和 Shader Graph for 2D 创建的火焰效果

后期处理

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

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

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

Physics 2D

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

视频简要介绍了 Unity 2020.1 中的 2D 物理功能。

要了解如何使用 Unity 的 2D 物理引擎,请参阅 2D Physics 学习教程

以下 2D 物理工具适用于 2D 游戏。

2D 刚体

2D 刚体组件将游戏对象置于物理引擎的控制之下。请参阅 2D 刚体

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

2D 碰撞体

2D 碰撞体组件可定义用于物理碰撞的 2D 游戏对象的形状。还可以使用 2D 碰撞体组件进行输入检测。例如,在手机游戏中,可以使用它们使精灵成为可选项。

可与 2D 刚体结合使用的 2D 碰撞体类型为:

2D 圆形碰撞体组件
2D 圆形碰撞体组件

触发器

将 2D 碰撞体设置为触发器时(通过启用其 Is Trigger 属性),它不再像物理对象那样行动,并且可以与其他碰撞体相交而不会导致碰撞。相反,当碰撞体进入其空间时,触发器将在触发器游戏对象的脚本上调用 OnTriggerEnter 函数。

已选择 Is Trigger 的 2D 圆形碰撞体组件
已选择 Is Trigger 的 2D 圆形碰撞体组件

2D 关节

关节将游戏对象连接在一起。只能将 2D 关节附加到游戏对象(已附加 2D 刚体组件)上或者附加到世界空间中的固定位置上。请参阅 2D 关节

2D 效应器

通过将 2D 效应器组件2D 碰撞体组件结合使用,可在游戏对象碰撞体相互接触时在项目中引导物理作用力。请参阅 2D 效应器

音频

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

用户界面

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

对构建进行性能分析、优化和测试

性能分析

通过性能分析可以查看游戏的不同部分的资源消耗程度。应始终在游戏的目标发布平台上对其进行性能分析;请参阅分析应用程序性能

优化

进行性能分析后,可以使用结果进行性能改进和优化。请参阅了解 Unity 中的优化

测试

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

Test Runner 窗口
Test Runner 窗口

发布

完成游戏后,即可发布游戏。请参阅发布构建

为 2D 游戏设置项目
2D 游戏视角参考
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961