[Unity3D] 2D像素游戏(二) 准备图像素材并认识预制件Prefab

回顾

上一篇:(一) Hello Unity!
在初步认识了Unity之后,我们成功创建了第一个2D像素精灵——我们的主角Player,并且导入添加了一个LittleBuddy作为主角的载体。

构思

当我们打算继续的时候,会陷入一种茫然:之后要做什么?这时候就需要预先对游戏玩法,游戏设定等等做个简单的构思。如我这款简单的游戏为例:
设定:我们的主角小巴迪是个火柴人,有一天不小心误入地牢,入口被封住,怪物在低吼,小巴迪坚定决心要在地牢中逃出生天,重见光明。
视角:俯视正交视角。俗称“从上往下看”,Player在一个水平面上移动,这样的视角就无需考虑重力。并且主角可以在平面上流畅移动,而非那种类似战旗的方格移动。
玩法:键盘和鼠标控制Player移动和攻击,消灭怪物,到达出口。

素材准备

既然说到是个地牢了,那么总归要有点地牢的样子,因此首先来布置一下游戏背景。默认的蓝底实在太毁气氛了!

寻找地板和障碍素材

老规矩,我们至少得先去找好素材,找找地板和障碍(墙)的像素图吧!当然我们需要的是那种正方形的像素图,这便于我们摆放和设计。另外保证图片的尺寸足够大,除非是矢量图,否则位图放大后会出现严重的模糊和变色。

统一图片素材尺寸

假定最后我们每个关卡是15x15unit(unit是Unity的一个标准单位,比如Transform栏的坐标都以unit为单位),每个精灵的图片素材大小为1x1unit。
一般可以通过如下方式来放缩图片使其符合我们的规定:

  • 项目里找到图片文件,单击以显示它的属性
  • 场景里找到Pixels Per Unit属性,例如我的图片是320x320像素,那么我就将值设为320。

合适搭配素材

入门游戏请不起美工没关系,但不能到太辣眼睛的地步。考虑到地牢会采用较暗的地板,LittleBuddy的黑色四肢就很容易看不清,于是可以添加一圈白色的描边。最终我的三张素材(32x32样图,实际320x320)如下:
墙面(spr_Wall):这里写图片描述
地板(spr_Floor):这里写图片描述
主角(spr_LittleBuddy):这里写图片描述

导入Unity预览效果

  • 将三张图片像上一篇一样导入到Sprites文件夹中。
  • 按照上面的英文名重命名文件。
  • 设置Pixels Per Unit属性。

此时,项目里的文件视图大概就是这样的:
这里写图片描述

要预览效果的话,首先要新建精灵:FloorWall。同样,别忘记新建精灵的标准化操作,然后给相应的精灵换上素材。如果一切无误,此时的三个精灵在场景都只占一个方格的位置。可以适当在Transform调整坐标防止重叠:
这里写图片描述

像我还是比较好奇实际效果的话,可以复制粘贴好几个地板或墙面,然后一个个设置坐标“拼凑”出一个简单的画面:
这里写图片描述

这里有个小细节,当精灵重叠在一起的时候,你可以调整精灵的Z坐标来使Z坐标小的精灵处在顶层。例如,我在这里将Player的Z坐标设为-1

制作预制件(Prefab)

预览完毕后,马上就会意识到一个严重的问题。这还只是一个两个,整个关卡最后可能会有几十个的精灵,但其实他们的本质都是一样的,地板就是地板,墙面就是一堵墙。因此Unity提供了预制件的功能,让开发者可以把某种游戏对象做成预制件。预制件可以产生克隆(类似复制粘贴),但你可以通过更改预制件的属性来更改所有克隆体的属性,并且.prefab格式的预制件文件可以到任意地方去使用,增大了开发复用性。
同理,为了管理项目,我们在根文件夹目录新建一个名为Prefabs的新文件夹存储所有的预制件,然后将预览时创建的多余复制体先删除。最后把Player,Wall,Floor一个个拖进Prefabs中。
这里写图片描述

现在可以试验一下,更改Wall.prefabSprite属性,看看游戏中的Wall会不会发生变化。
这里写图片描述

那么这三个重要的预制件就顺利完成了,之后会再进一步利用。

拓展阅读

用PS画像素画
https://jingyan.baidu.com/article/0eb457e5d05a8b03f1a9051f.html

猜你喜欢

转载自blog.csdn.net/qq_37398834/article/details/81983473
今日推荐