Skip to content

Latest commit

 

History

History
179 lines (96 loc) · 10.8 KB

04.Adding and displaying a background.md

File metadata and controls

179 lines (96 loc) · 10.8 KB

< 前一篇 后一篇 >

添加/显示背景

使用在之前章节里,我们创建的空项目,现在我们将学习如果添加背景和一些华丽的云。

添加背景

你的第一个背景将是静态的,我们将使用下面的图片:

TGPA background

(右键点击保存)

将它导入到"sprites"文件夹里,简单复制进去,或是拖放进去。

现在不要担心导入设置。

在Unity里,创建一个新的Sprite游戏对象到场景里。

New sprite

什么是Sprite?

通常来说,我们把视频游戏里的一个2D图片叫做"sprite" (精灵),这里是Unity 2D游戏一个明确的对象。

给Sprite添加纹理

我们将选择一个实际的精灵来显示,确保"New Sprite"是选中的状态,看"Inspector"面板,将"background"图片添加到Sprite属性里:

Select a sprite

(你需要点击输入框右侧的圆形小图标,打开"Select Sprite"检视器)

你可以看到一些别的精灵也在这里,那是uGUI的默认图片 (Unity UI 系统)

我的sprite没有显示在对话框里?:首先,确保你在"Select Sprite"的"Assets"标签里。

一些读者报告说,在他们的项目里,这个对话框是空的,原因是一些安装的Unity,即使是创建一个新的2D项目,图片导入是以"Texture"类型,而不是"Sprite"。

要修正这个,你需要在"Project"面板里选中图片,然后在"Inspector"面板里,改变"Texture Type"属性为"Sprite":

Sprite mode

我们不清楚为什么每个人看到的情况有点不同。

好了,我们设置了一个简单的精灵,用来当做有云的天空背景,你可以认为这有点点复杂,事实上,我们可以直接将精灵从"Project"标签里拖到场景里。

让我们来整理一下这个场景。

在"Hierarchy"面板里,选择New Sprite,重命名为Background1或是你比较容易记的名字。

接着将它移动到Level -> Background下,改变它的坐标为(0, 0, 0)

Background is set

一个快速练习:复制背景,粘贴到坐标(20, 0, 0)的位置,它将把第一部分填充得非常完美。

小巧门:你可以使用cmd + D (OS X)或ctrl + D (Windows)快捷键复制一个对象

Background2 in place

精灵层

下一个陈述似乎很显示,但它有一个后果:我们正展示一个2D世界。

这意味着所有的图片都在同一个深度,0,你呢 (以及图像引擎),完全不知道谁会被第一个显示。

精灵层允许我们告诉Unity,哪些在前面,哪些在后面。

在Unity里,我们可以改变元素的"Z"值,这将使我们拥有层,这实际上是本教程在Unity 5之前的做法。

但是我们认为使用精灵层是一个好注意。

在我们的"Sprite Renderer"组件里,有一项叫做"Sorting Layer",现在值为Default

如果你点击它,一个短列表会显示出来:

Sorting layer list

让我们添加我们需要的层进去 (使用"+"按钮):

Sorting layer add

Background层设置给背景精灵:

Set sorting layer

小巧门:设置项"Order in Layer"是一种限制子图层的方法,拥有较小数字的精灵在拥有较大数字的精灵之前显示。

:"Default"层是无法被删除的,因为它是用于3D元素的,你可以在2D游戏里拥有3D对象,Unity将粒子就视为3D对象,所以它们将被显示在这一层

添加背景元素

如果道具,这些元素不会用于提升游戏玩法,但可以显著的加强场景。

这里有一些简单的飞行平台精灵:

Platform sprites

(右键点击保存)

如你所见,在一个文件里,有两个平台,这是一个学习如何使用Unity工作切割精灵的好方法。

从一张图片里获取两个精灵

  1. 导入图片到"sprites"文件夹
  2. 选中"platforms" 精灵,打开"Inspector"
  3. 改变"Sprite Mode"为"Multiple"
  4. 点击"Sprite Editor"按钮

Multiple sprites

在新的窗口("Sprite Editor"),你可以在绕着每个平台画一个矩形,来将纹理切成更小的部分:

Sprite Editor

将它们分别命名为"platform1"和"platform2"。

小巧门:左上角的按钮"Slice"可以快速自动的完成这个沉闷的任务。

Unity会在图片里找到对象进行自动的分片,你可以指定默认的轴心,或是设置切片的最小尺寸。对于没有失真的简单图片,它真的非常有效率。然而,如果你使用了这个工具,小心,检查结果是不是你想要的。

现在,下面的图片文件,你可以看到已经分离成了两个精灵:

Sprite Editor result

把它们添加到场景

我们将像背景精灵一样处理:创建一个新的Sprite,选择"platform1"精灵(或者把它们一个一个的拖到"Project"的"Scene"标签里),重复"platform2"。

设置它们的"Sprite Layer"为"Platforms"。

把它们放到Middleground对象里。

Two shiny new platforms

成啦!我仍然不敢相信如此之简单(诚实的说,如果没有2D工具,涉及四边形和图像的平铺,不是一件容易的事)

预制件

将这些平台保存成为预制件,只需要拖放它们到"Prefabs"文件夹里

Prefabs

这样子,你将完全基于原始的游戏对象制作Prefab,你可能注意到,被你转为Prefab的游戏对象,现在在它的名称下面多了一行按钮:

Prefab connection

"Prefab"按钮:如果你在后面修改了游戏对象,你可以"Apply"它的改变到Prefab里,或者"撤回"它(取消所有在游戏对象上的改变),"Select"按钮可以将你的选择直接移动到"Project"视图中的资源里 (它会突出显示)。

使用platform对象创建预制件将会在后面重用,让创建它们变得容易。简单的拖放Prefab到场景里就可以添加一个拷贝,试试这个方法去添加另一个platform。

你现在可以添加更多的platform了,修改它们的位置,缩放和平面。

你可以放一些到background里也可以添加到foreground里,记住,"Background", "Middleground", "Foreground"对象都是文件夹,所以,你需要设置正确的"Sprite Layer" (Platforms),修改"Order in Layer"。

使用-10给较远的platform,加大数字给较近的,举个列子:

Add a platform in background

这样不是非常的时髦,但在下两张,我们将添加视差滚动,它会一下子让场景变得生动起来。

镜头和光

那么,在本教程之前的版本 (Unity 4.2),我们有很长且细致的解释了在2D游戏里如何设置镜头和光。

好消息是,现在不必要了,你不用做任何事情,它已经在工作了。

旁白:如果你点击Main Camera游戏对象,你可以看到,它的"Projection"标志设置为"Orthographic",这是允许镜头在不考虑3D的情况下渲染2D游戏的设置。记住,即使你使用的是2D对象,Unity仍然3D引擎来渲染场景,上面的Gif很好的展示了这一点

下一步

你已经学习了如何创建一个简单的静态背景,如何正确的显示它,接着,我们又告诉你如何使用图片制作简单的精灵。

在下一章里,我们会学习如果添加player和它的enemies。

< 前一篇 后一篇 >