2DToolkit官方文档中文版打地鼠教程(三):Sprite Collections 精灵集合

回顾:现在Unity自带的2D方案应该是更好的选择

之前我们已经导入了游戏素材,在Project窗口,你可以看到Mole文件夹。打开里面的Textures文件夹,你会看到图片列表。

Mole资源文件夹

为了在项目中使用这些图形,我们将它们做成Sprite Collection精灵集合。

  1. Project窗口,新建一个文件夹,命名为Sprite Collections

  2. 选中Sprite Collections文件夹,单击 Create > tk2d > Sprite Collection,在Sprite Collections文件夹创建一个SpriteCollection资源。

创建SpriteCollection

  1. 选中SpriteCollection资源,重命名为Land,用来存放land相关的图片。 注意:尽管我们的游戏相当非常简单,但是如果你想做更大更复杂的游戏的话,思考如何将精灵分组是非常重要的。Unity内置动态分配系统,会自动减少draw请求,通过Z值可以非常高效的组织Sprite。在多个精灵集合中存在重复精灵时将增加draw请求次数,请不要将精灵添加到多个精灵集合。

  2. Inspector窗口中,单击Open Editor将会打开SpriteCollection窗口。为了更方便的拖拽精灵到窗口中,你可以将窗口固定。

打开SpriteCollection编辑器

SpriteCollection界面

  1. Project窗口中,打开并选中 Mole > Textures 文件夹,拖拽下面的精灵到SpriteCollection窗口中Drop sprite here位置。你可以单独拖动一个,也可以多个一起拖动:

Cloud_01 Cloud_02 Cloud_03 Field_Background Field_Foreground Field_Midground Field_Ploughed Fields Grass_01 Grass_02 Sky_Burst Sky_Colour Stone_01 Stone_02 Stone_03 Stone_04 Stone_05 Tree_01 Tree_02

拖拽多个精灵到SpriteCollection窗口中

Sprites列表下,你可以选择其中一个精灵,它将会显示在主窗口中。

  1. SpriteCollection窗口中,点击Settings按钮打开设置,这里的设置影响集合中的所有精灵。

SpriteCollection窗口Settings设置

  1. 在早期的2DToolkit版本中,为了让游戏对象正确的显示在屏幕上,你需要选中 Use tk2DCamera 选项。不过,在当前版本的2DToolkit中,精灵集合会自动检测tk2DCamera是否使用。单击 Commit 按钮保存我们所进行的修改。

Commit确认修改

  1. 你可能会看到一个弹窗警告:unable to fit textures in the requested atlas area ,单击OK按钮。这里提示我们纹理过多,合并后的图片可能超出大小,一般是指2048*2048这种。如果你做过图片合并压缩,可能会理解我的意思。

精灵集合警告窗口

  1. 我们有两种途径解决此问题:在Atlas Settings中增加Atlas的大小,或者把大图分割成多个小图,或者两种办法同时使用。

  2. Spite列表中的选中一个精灵,能在主窗口的右下角看到图片的大小。通过查看各个sprite,我们可以看到 Field 精灵尺寸最大。

查看精灵尺寸大小

  1. 选中Field的多个精灵,在右边窗口中把 Render Mesh 值从 Default 修改为 Diced

选中多个Field精灵

修改RenderMesh值为Diced

  1. 它将会提供给我们两个可供改变的值:Dice XDice Y。修改他们两个的值为64并点击Apply按钮。这会将每个图片分割为64*64的块,不过不用担心,2d Toolkit会在他们需要显示时,将它们重新组合在一起。下面的图片展示了修改之前和之后的样子:

atlas之前

atlas之后

正如你所看到的,精灵被存储为未切割图谱的原始图像,而在切块图集中已进行切割。

  1. 返回Settings设置,并且将Atlas Settings中的Max Size值修改为2048并单击Commit,图集就会被创建。对于其他精灵图集你可能需要经过试验来找到合适的切片及图集大小。

精灵图集大小设置

  1. 重复步骤2开始创建包含以下详细内容的精灵集合:
    Mole: Mole_Hit, Mole_Hole, Mole_Hole_Mud, Mole_Normal Dust: Animated_Dust_01 to Animated_Dust_16

记住确定你的修改!