Unity3D:创建 2D 游戏

Unity3D:创建 2D 游戏
推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

创建 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 游戏的基础:

  • 变换:变换组件确定场景中每个游戏对象的位置、旋转和缩放。每个游戏对象都有一个变换组件。
  • 精灵渲染器:精灵渲染器组件渲染精灵并控制其在场景中的外观。
  • 相机:捕捉并向玩家显示世界的设备。将摄影机标记为正交会从摄影机视图中移除所有透视。这对于制作等距或 2D 游戏非常有用。
  • 碰撞体 2D:此组件定义用于物理碰撞的 2D 游戏对象的形状。请参阅 2D 物理。

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

脚本

所有2D游戏都需要脚本。脚本响应来自玩家的输入,并安排游戏中的事件在应该发生的时候发生。

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

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

Sprites

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

角色精灵
角色精灵

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

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

导入和设置Sprites

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

渲染Sprites

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

使用精灵渲染器调整精灵的颜色
使用精灵渲染器调整精灵的颜色

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

沿 y 轴排序的精灵
沿 y 轴排序的精灵

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

要使用精灵渲染器对游戏对象进行分组,并控制它们渲染Sprites的顺序,请使用排序组。

精灵图集

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

精灵图集
精灵图集

请参阅Sprites图集学习简介教程。

构建游戏内环境

环境设计是指构建游戏关卡和环境的过程。你可以以对游戏最有意义的方式组合本节中的环境设计工具;例如,您可以仅使用9切片制作自上而下的游戏,也可以使用Tilemap和SpriteShape在平台游戏上制作侧面。

9 切片

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

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

一个 9 切片的精灵,分为 9 个部分
一个 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 简介。

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

要设置照明:

  1. 准备好你的精灵进行光照。有关详细信息,请参阅为光照准备Sprites
  2. 设置法线贴图和蒙版纹理。2D 光源可以与链接到精灵的法线贴图和蒙版纹理进行交互,以创建高级光照效果,例如法线贴图。请参阅设置法线贴图和蒙版纹理。
  3. 创建 2D 光照游戏对象;请参见 2D 光源属性。
  4. 配置 2D 渲染器数据资产;请参阅配置 2D 渲染器资源。
  5. (可选)如果要将 2D 灯光效果应用于像素艺术游戏,请参阅 2D 像素完美。

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

阴影

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

阴影投射器 2D 组件中的阴影强度为 0.5
阴影投射器 0D 组件中的阴影强度为 5.2

增强的外观和感觉

粒子系统和后期处理是可选工具,可用于为游戏添加润色。

粒子系统

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

火焰效果,使用粒子系统和着色器图创建 2D
火焰效果,使用粒子系统和着色器图创建 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
  • 2D 对撞机胶囊
  • 二维复合对撞机
圆形碰撞体 2D 组件
圆形碰撞体 2D 组件

触发器

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

选中了“是触发器”的圆形碰撞体 2D 组件
选中了“是触发器”的圆形碰撞体 2D 组件

2D 关节

关节将游戏对象连接在一起。您只能将 2D 关节附加到附加了刚体 2D 组件的游戏对象,或附加到世界空间中的固定位置。请参见 2D 关节。

2D 效果器

将效果器 2D 组件与碰撞体 2D 组件结合使用,以便在游戏对象碰撞体相互接触时引导场景中的物理力。请参阅 2D 效果器。

音频

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

用户界面

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

分析、优化和测试构建

性能分析

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

优化

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

测试

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

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

出版

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

“生成设置”窗口
“生成设置”窗口

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

上一篇:Unity3D:2D 游戏的初始设置 (mvrlink.com)

下一篇:Unity3D:2D 排序 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号