版本:2022.3
语言:英语
2D游戏初始设置
2D排序

创建2D游戏

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

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

  1. 基础

  2. 脚本

  3. Sprite2D图形对象。如果您习惯了3D工作,则Sprite本质上只是标准纹理,但有一些特殊的技巧可以组合和管理精灵纹理,以提高效率和方便性。了解更多信息更多信息
    参见词汇表

  4. 构建游戏环境

  5. 角色动画

  6. 图形

  7. 2D物理

  8. 音频

  9. 用户界面

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

  11. 发布

基础

GameObjectUnity场景中的基本对象,可以代表角色、道具、场景、相机、标记点等。GameObject的功能由附加到它的组件定义。了解更多信息更多信息
参见词汇表
是Unity中的基本对象,代表角色、道具、场景等。游戏中的每个对象都是GameObject。

GameObject代表游戏中的物品;您放置它们的区域,用于构建关卡,称为场景场景包含游戏的环境和菜单。将每个独特的场景文件视为一个独特的关卡。在每个场景中,放置您的环境、障碍物和装饰,本质上就像将游戏分成几部分来设计和构建。了解更多信息更多信息
参见词汇表
。Unity中的场景始终是3D的;当您在Unity中创建2D游戏时,通常选择忽略第三维度(z轴),但在某些特殊情况下也可以使用它,例如制作2.5D游戏。

GameObject的行为由功能块定义,称为组件。以下组件是2D游戏的基本组件

  • TransformTransform组件Transform组件确定场景中每个对象的Position、Rotation和Scale。每个GameObject都有一个Transform组件。了解更多信息更多信息
    参见词汇表

  • SpriteRendererSpriteRenderer组件用于展示图像作为Sprite,在2D和3D场景中使用。了解更多信息更多信息
    参见词汇表
    :将精灵渲染到场景中,并控制它在场景中的外观。

  • Camera这是一个组件,它可以在场景中创建特定视角的图像。输出可以是绘制到屏幕上,也可以捕获为纹理。了解更多信息更多信息
    参见词汇表
    :捕捉并显示世界给玩家的设备。将Camera标记为正交投影会消除Camera视图中所有的透视。这主要用于制作等距或2D游戏。

  • 2D 遇难者组件:该组件用于定义 2D 模拟物体的形状,用于物理 碰撞发生碰撞时,物理引擎检测到两个模拟物体的遇难者接触或重叠,至少其中一个具有刚体组件并在移动的情况下。 更多信息
    术语表中查看
    。请参阅 2D 物理

组件是 C# 类的 UI(用户界面) 允许用户与您的应用程序交互。Unity 现在支持三个 UI 系统。 更多信息
术语表中查看
表示;您可以使用脚本来更改和交互组件,或创建新的组件。请参阅 脚本编程 部分以获取更多详细信息。

脚本

所有 2D 游戏*都需要 脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性并按您的喜好以任何方式响应用户输入。 更多信息
术语表中查看
。脚本能响应用户输入并安排游戏中的事件在其应发生时发生。

有关在 Unity 中使用脚本的详细信息,请参阅 脚本概述。另外,请参阅 Unity Learn 的 脚本入门 课程。

脚本附加到模拟物体,您创建的任何脚本都继承自 MonoBehaviour 类。

精灵

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

A character Sprite
角色精灵

您还可以使用精灵集合构建角色。这允许您对角色的移动和动画有更大的控制。

Multiple Sprites that make up the parts of a character, displayed in the Sprite Editor
组成角色部分的多个精灵,在精灵编辑器中显示

导入和设置精灵

请按 Unity 推荐的设置导入精灵;请参阅 导入和设置精灵

渲染精灵

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

Adjusting the color of a Sprite with the Sprite Renderer
使用 Sprite Renderer 调整精灵的颜色

请参阅 Sprite Renderer 简介 学习教程。排序精灵通过在层级中组织精灵,您可以创造一个深度的错觉。您可以根据许多策略对精灵进行排序。请参阅 排序精灵 以获取完整详情。例如,您可能按 y 轴对精灵进行排序,这样较高的精灵应排在较低的精灵之后,这样较高的精灵看起来比较低的精灵更远。

Sprites sorted along the y-axis
y 轴上的排序精灵

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

要将带有 Sprite Renderer 的模拟物体分组,并控制它们渲染精灵的顺序,请使用 排序组

精灵图集

您可以使用精灵图集由多个较小的纹理组成的纹理。也称为纹理图集、精灵图、精灵表或多纹理打包。 更多信息
词汇表中查看
将多个纹理合并为单个组合纹理。这优化了您的游戏并节省了内存。例如,您可以将与特定角色或目的相关联的所有精灵添加到精灵图集中。

A Sprite Atlas
精灵图集

查看精灵图集入门教程

构建游戏环境

环境设计指的是构建您游戏关卡和环境的流程。您可以根据需要组合此部分中的环境设计工具;例如,您可以使用9切片制作俯视游戏,或者使用Tilemap和SpriteShape制作侧膨胀平台游戏。

9切片技术

9切片技术是一种允许您在各种大小上重用图片而不需要准备多个资产的两个维技术。Unity可以动态拉伸和平铺指定的Sprite部件,以便让一个Sprite成为多个尺寸UI元素的边框或背景。请参阅9切片精灵

例如,您可以使用9切片技术在构建2D关卡时将Sprite拉伸成特定形状。

A 9-sliced Sprite, split into nine sections
九分之一的Sprite,分成九个部分

查看使用9切片进行可缩放精灵教程

瓦片图

瓦片图一个允许您使用瓦片和网格叠加快速创建2D关卡的游戏对象。 更多信息
词汇表中查看
组件是一个存储和处理瓦片资产以创建2D关卡的系统。使用2D瓦片图编辑器包(默认安装)来使用瓦片图。

例如,您可以使用瓦片图使用瓦片和笔刷工具绘制关卡,并定义瓦片的规则。

The Tile Palette window, used to edit Tilemaps
用于编辑瓦片图的瓦片调色板窗口

查看瓦片图入门教程

2D瓦片图扩展

要将一些额外的瓦片图资产添加到您的项目中,请安装2D瓦片图扩展包。此包包含可重用的2D和瓦片图编辑器脚本,您可以使用它们为您的项目创建新的刷子,以适应不同的场景。

等距瓦片图

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

精灵形状

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

A path created in SpriteShape
在SpriteShape中创建的路径

查看使用SpriteShape教程

角色动画

有三种不同的方式可以动画化2D角色

2D动画类型 用于
逐帧 艺术原因,如果想让您的游戏具有经典动画艺术风格。逐帧动画相对资源密集,从制作到运行都需要资源。
剪纸动画 平滑骨骼动画,当角色不需要逼真的关节时。
骨骼动画 当Sprite根据骨骼结构弯曲时进行平滑骨骼动画。当角色需要更自然的感受时使用此方法。

逐帧

逐帧动画基于传统的细胞动画技术,将动画的每个瞬间绘制成单独的图片,并快速连续播放,就像翻转翻书一样。

要实现帧序动画,请遵循逐帧动画制作流程

Frame-by-frame animation in the Sprite Editor
在精灵编辑器中的逐帧动画

请参阅精灵动画入门教程

剪纸动画

在切割动画中,多个精灵组成角色的主体,每个部件的运动都会为整个人物提供运动的视觉效果。这种动画风格与骨骼动画(见下文)类似,只是精灵不会弯曲。

Cutout animation in the Sprite Editor
在精灵编辑器中的切割动画

骨骼动画

使用骨骼动画时,您将精灵或多个精灵映射到动画骨骼上。您可以创建并定义用于显示如何弯曲和移动角色的动画骨骼,对象等。这种方法允许骨骼弯曲和变形精灵,以获得更自然的活动风格。要使用骨骼动画,您需要使用2D动画包(默认安装)。

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

A character with bones in the Bone Editor
骨骼编辑器中的带骨骼的角色

图形

本节介绍了您在使用通用渲染管线一系列操作,它将场景内容转换为屏幕上的显示。Unity让您从预构建的渲染管线中选择,或编写自己的渲染管线。 更多信息
术语表中查看
(URP)时的图形选项。

照明

因为您使用2D渲染器与URP结合使用,所以可以使用Light 2D组件将优化的2D照明应用于精灵。有关详细信息,请参阅2D灯光介绍

These two images show the same scene; in the image on the left, 2D Lights are disabled, and in the image on the right, 2D lights are enabled. With 2D Lights, you can use the same Sprites to create different weather conditions or moods.
这两张图片显示的是同一场景;在左边的图像中,2D灯光已禁用,在右边的图像中2D灯光已启用。使用2D灯光,您可以使用相同的精灵创建不同的天气条件或情绪。

设置照明

  1. 为您的精灵进行照明预热。有关详细信息,请参阅为照明准备精灵

  2. 设置纹理贴图它允许您为模型添加具有凹凸,槽纹和划痕等表面细节的纹理,这些细节仿佛由真实几何体产生一样捕捉光线。
    术语表中查看
    和遮罩纹理。2D灯光可以与链接到精灵的纹理贴图和遮罩纹理相互作用以创建高级照明效果,如纹理贴图。请参阅设置纹理贴图和遮罩纹理

  3. 创建一个2D灯光游戏对象;参见2D灯光属性

  4. 配置2D渲染器数据资产;请参阅配置2D渲染器资产

  5. (可选)如果您想在2D像素艺术游戏中应用2D灯光效果,请参阅2D像素精确

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

阴影

要定义光用于确定其闩锁的形状和属性,请使用阴影投射器2D组件。将光线的阴影强度增加到零以上。

A shadow intensity of 0.5 in the Shadow Caster 2D component
阴影投射器2D组件中的阴影强度为0.5

增强的外观和感觉

粒子系统和 后期处理一种在图像显示在屏幕上之前应用过滤器和效果来改善产品视觉的过程。您可以使用后期处理效果来模拟物理相机和电影属性,例如光晕和景深。有关更多信息,请参阅这里。搜索词:后期处理、postprocessing、postprocess
术语表中查看
是可选项,您可以用它们为您的游戏增添磨光。

粒子系统

您可以使用粒子系统来创建像火、烟或液体这样的动态对象,作为使用精灵的替代方案。精灵更适合物理对象。请参见粒子系统一个组件,它通过在场景中生成并动画化大量小2D图像来模拟液体、云和火焰等流体实体。更多信息请见这里
术语表中查看

A fire effect, created with the Particle System and Shader Graph for 2D
使用粒子系统与Shader Graph为2D创建的火焰效果

后期处理

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

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

The Lost Crypt demo uses the bloom and vignette post-processing effects
“失落的地下室”演示使用了光晕和缩放后期处理效果

2D物理

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

视频概述了Unity 2020.1中的2D物理功能。

要了解如何使用Unity的2D 物理引擎一个系统,用于模拟物理系统的一些方面,以便对象可以正确加速并受到碰撞、重力和其他力的作用。更多信息请见这里
术语表中查看
,请参阅2D物理教程

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

Rigidbody 2D

Rigidbody一个组件,允许GameObject受到模拟的重力和其他作用力的作用。更多信息请见这里
术语表中查看
2D组件将GameObject置于物理引擎的控制之下。请见Rigidbody 2D

The Rigidbody 2D component
Rigidbody 2D组件

Collider 2D

Collider 2D组件定义了2D GameObject的形状,以便进行物理碰撞。您还可以使用 Collider一个不可见的形状,用于处理对象的物理碰撞。Collider不需要与对象的网格形状完全相同,粗略的近似通常更有效且在游戏中难以区分。更多信息请见这里
术语表中查看
2D组件进行输入检测。例如,在手机游戏中,您可以使用它们来使精灵可选择。

您可以使用与Rigidbody 2D一起使用的Collider 2D类型包括:

The Circle Collider 2D component
Circle Collider 2D组件

Trigger

当您将2D碰撞器设置为触发器(通过启用其《是触发器》属性)时,它不再以物理对象的方式表现,并且可以在不引起碰撞的情况下与其它碰撞器相交。相反,当碰撞器进入其空间时,Unity会在触发器GameObject的脚本中调用《OnTriggerEnter》函数。

The Circle Collider 2D component with Is Trigger selected
带有《是触发器》选中的2D圆碰撞器组件

2D关节

关节可以将GameObject连接在一起。您只能将2D关节一个允许Rigidbody组件之间动态连接的物理组件,通常允许某种程度的运动,例如旋转关节。 更多信息
在《词汇表》中查看
附加到具有Rigidbody 2D组件的GameObject,或者附加到世界空间中的固定位置。参阅《2D关节》。

2D效应器

使用带有《2D碰撞器》组件的2D《组件GameObject的功能部分。一个GameObject可以包含任意数量的组件。Unity有许多内置组件,您可以通过编写派生自MonoBehaviour的脚本来创建自己的组件。 更多信息
在《词汇表》中查看
》来在您的场景中当GameObject的碰撞器相互接触时,引导物理力。参阅《2D效应器》。

音频

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

用户界面

如果您想在游戏中添加菜单或帮助,您需要设置一个《用户界面》。要设置用户界面,请使用《Unity UI》。

分析性能,优化和测试构建

分析性能

分析性能可以帮助您了解游戏的各个部分资源消耗量。您应该始终在目标发布平台上对游戏进行性能分析;参阅《分析应用程序》。

优化

分析后,您可以使用结果进行性能改善和优化。参阅《Unity中的优化理解》。

测试

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

The Test Runner window
测试运行器窗口

发布

当您完成游戏后,即可准备发布它。参阅《发布构建》。

The Build Settings window
构建设置窗口
2D游戏初始设置
2D排序