Unity 2D 终结手册 (1) - 2D 项目

Unity 2D开发技术。包括 2D/3D项目的区别、如何设置 2D/3D模式、2D开发中使用到的组件等。

不止能够制作酷炫的 3D 游戏,同样也能够制作完美的2D 游戏。使用Unity 开发2D 内容时,编辑器的大部分功能都是通用的,只不过有些功能为了简化2D 开发,做了一些调整。

unity 2d游戏开发 pdf unity3d 2d开发_unity3d

(图 1)Unity 2D 游戏

Scene 视图上方的工具条中,有一个明显的 2D模式按钮,点击按钮就能够在 2D/3D模式间进行切换。当开启 2D模式时,场景会以正交视图进行显示(3D模式下是以透视视图进行显示的),此时 Scene视图的视角看起来是朝着Z轴正方向的,并且向上是 Y轴正方向。在此模式下我们可以轻松地设置 2D场景、操作 2D对象。

unity 2d游戏开发 pdf unity3d 2d开发_宋晓波_02

(图 2)2D 模式下的 Scene 视图

2D 模式还是 3D模式启动。2D/3D模式决定了 Unity编辑器的一些设置,比如当导入一张图片时,会把它默认作为 Texture(纹理)还是Sprite(精灵)。如果我们不小心选错了模式也不要紧,在项目创建成功之后,我们依然可以在2D/3D 模式之间切换。如果我们不太清楚我们的项目应该以2D 模式还是以3D 模式开始,我们就应该先了解一下2D/3D 项目的区别。

一、完全 3D 的项目

游戏通常使用三维立体几何模型,使用材质(Material)并将纹理(Texture)渲染(Render)在这些模型表面,使它们看起来像个房子、角色或其它物体,然后构成整个游戏世界。摄像机可以在场景周围自由地移动,逼真的光影投射在整个游戏世界中。3D游戏的渲染需要通过视角计算,这样一来,越靠近摄像机的物体,在屏幕上就会显示的越大。对于满足这些描述的游戏,都应该在3D 模式下进行开发。

unity 2d游戏开发 pdf unity3d 2d开发_蓝鸥_03

(图 3)一些完全 3D 的场景

二、正交 3D 项目

“鸟瞰图”的形式呈现整个场景,我们也叫它“2.5D”。如果我们需要开发这样的游戏,也应该选择3D 模式,因为即使整个画面看起来没有透视效果,但我们仍然需要使用3D 模型和资源。不过需要把摄像机和场景视图调整为正交。

unity 2d游戏开发 pdf unity3d 2d开发_3D_04

(图 4)一些采用正交视图的 3D 游戏

三、完全 2D 项目

2D 游戏使用的是平面图形,也叫作Sprite(精灵)。它们没有立体感,是直接绘制在屏幕上的图像,并且游戏中的摄像机没有透视的感觉。对于这种类型的项目,我们应该选择在2D 模式下开始。

unity 2d游戏开发 pdf unity3d 2d开发_宋晓波_05

(图5)一些完全 2D 的游戏

四、使用 2D 的玩法但是采用 3D 图形的项目

2D 的玩法。例如,游戏中使用的是 3D模型的障碍物、人物、场景,摄像机也是透视摄像机,但是摄像机永远只能提供一个横向滚动的视图,玩家也只能操作人物在两个维度上运动。对于这些游戏,3D只能算是一种风格,并不是游戏的功能。这种游戏也可以叫做“2.5D”。由于在开发过程中我们需要使用到3D 模型,所以这类游戏同样需要选择3D 模式。

unity 2d游戏开发 pdf unity3d 2d开发_unity3d_06

(图 6)一个 2D 横板游戏,但是采用了 3D 图形效果

五、使用 2D 图形和玩法,但包含透视相机的项目

2D 游戏常用的一种风格,采用2D 图像但使用的是透视摄像机。这种项目中,所有的图像都是平面的,但是距离摄像机的远近不同,当摄像机移动时会产生一种视差滚动的效果,比较有层次感。我们在2D 模式下就能够进行开发,只是需要把Scene 视图设置为3D,并且将摄像机调整为透视摄像机。

unity 2d游戏开发 pdf unity3d 2d开发_unity3d_07

(图 7)一个完全 2D 的游戏,但是使用了透视摄像机

六、其他类型的项目

2D/3D 模式是可以在项目开发过程中随时修改的。

Unity 2D 终结手册 (2) - 精灵


2D 中的所有图像我们都称之为精灵(Sprite)。精灵和标准的纹理几乎一样,但是采用了特殊的技术用来组合并管理精灵纹理,进而提高开发效率,使操作更便捷。Unity 提供了一个内置的精灵编辑器,能够从一张大的图片中提取精灵图像。这样我们就可以使用外部的图形编辑器(比如 Photoshop),在一个单独的纹理中编辑多个图像组件。例如,我们可以把角色的手臂、腿、身子等都作为一个个单独的图像元素,保存在一张大图中。

2D 的精灵对象需要使用精灵渲染器(Sprite Renderer)进行渲染,而不是使用 3D 对象的网格渲染器(Mesh Renderer)。我们可以通过组件菜单(Component -> Rendering -> Sprite Renderer)给游戏对象添加精灵渲染器;或者直接创建一个带有精灵渲染器的游戏对象(GameObject -> 2D Object -> Sprite),我们叫它精灵对象。此外,我们也可以通过精灵创建工具,制作出占位精灵(Placeholder Sprite)。

相关工具

在 Unity 中提供了一系列针对精灵操作的工具,它们能够简化我们的工作流。包括精灵创建器(Sprite Creator)、精灵编辑器(Sprite Editor)、精灵打包器(Sprite Packer)和精灵渲染器(Sprite Renderer)。

精灵创建器(Sprite Creator)能够让我们在 Unity 中创建占位精灵(Placeholder Sprite),这样即使美术还没有提供给我们图像素材,我们也可以先进行开发。

我们可以使用精灵编辑器(Sprite Editor)从一张大图中提取精灵图像,也可以在一个纹理中编辑图像组件,比如胳膊、腿等。

精灵对象必须通过精灵渲染器(Sprite Renderer)渲染才能够显示在场景中。

在项目中使用精灵打包器(Sprite Packer)能够优化显存的使用和性能。