幻蓝博客 – 孤月蓝风

追寻互联网科技、Unity开发、AR/VR开发、游戏开发、Web前后端开发等技术。

2DToolkit官方文档中文版打地鼠教程(四):将精灵加入到游戏中


现在,我们已经创建好了精灵集合。

  1. 在Hierarchy窗口中,点击 Create > tk2d > Sprite 创建精灵。初始精灵可能会从2DToolkit中的Demo Sprite中选择一个。

  2. 在Hierarchy窗口中选中精灵对象,在Inspector窗口中修改Collection值为Land,并将Sprite值改为Fileds。将精灵名称修改为Landscape。

  3. Transform > Postion 里面的Z值,在2D游戏中表示游戏对象的深度。tk2dCamera的默认Z值为-10,所以为了能够看到我们的精灵,这里的Z值要比摄像机的Z值大,Z值越大对象越远,这里Z值设置为10。

  4. 你可能还需要调整Transform > Position中的X和Y值,它们可以调整精灵在屏幕上的显示位置。默认的,Feild精灵的锚点被设置为精灵的中心点。你可以点击tk2d Script下面的e按钮来修改锚点位置,这里我们修改为Lower Left(记住Commit提交修改)。

  5. 重复上面的步骤来添加sky、trees、grass、rocks到游戏中。记得调整精灵的Transform Position的Z值来进行正确排序,越大的Z值离摄像机越远,你可以改变锚点让你更容易的放置精灵。像下图一样添加完成所有精灵。


本系列教程的所有链接:


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


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

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

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

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

  3. 选中SpriteCollection资源,重命名为Land,用来存放land相关的图片。

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

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

  5. 在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

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

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

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

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

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

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

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

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

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

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

  9. 重复步骤2开始创建包含以下详细内容精灵集合:

    Mole: Mole_Hit, Mole_Hole, Mole_Hole_Mud, Mole_Normal
    Dust: Animated_Dust_01 to Animated_Dust_16

记住确定你的修改!


本系列教程的所有链接:


2DToolkit官方文档中文版打地鼠教程(二):设置摄像机


制作游戏的第一步,就是创建一个游戏摄像机。虽然Unity已经在Hierarchy窗口给我们提供了一个默认摄像机MainCamera,但为了简单,我们使用2D Toolkit中已经为2D游戏场景优化过的摄像机。

  1. 删除默认的Unity摄像机MainCamera,我们使用tk2dCamera。如果两个摄像机都在场景中,在未正确配置的情况下会产生冲突。

  2. 在创建tk2dCamera之前,设置Game窗口的分辨率,以便tk2dCamera能够自动匹配设置。在Game窗口左上角有一个下拉选项,单击并选择Standalone。如果你没有看到这项设置,可能当前并非PC Mac and Linux Standalone,请先进行切换,然后选择Standalone。

  3. 在Unity菜单栏中点击 GameObject > Create Other > tk2d > Camera 创建摄像机,默认名称为 tk2dCamera 。

  4. 如果Game窗口没有被设置为Standalone,那么你将看到一些警告,例如:the camera has not been able to detect some of the settings. 选中Hierarchy窗口中的tk2dCamera,查看Inspector窗口中的设置,如下图:

    在本教程中将始终使用Standalone模式以及1024*768的分辨率。

    Tk 2d Camera (Script)组件中的Native Resolution,是游戏开发阶段的分辨率。

    Preview Resolution,是你的预览分辨率,你可以修改这里来预览不同分辨率下的显示效果。

  5. 2D游戏的投影模式为Orthographic模式,如果不是的话你需要通过下拉选项将其修改为Orthographic。当前游戏中,我们只有单屏幕以及没有滚动等其他效果,Pixels per Meter设置值为1即可。

  6. Origin(原点)决定我们为游戏对象定位时的测量起点,我们将原点设置为屏幕的左下角,在Origin字段的下拉列表中选择Bottom Left。摄像机设置结束后,应该像下图一样:

  7. Camera选项卡:

    – Background Color背景颜色值将会显示在游戏的任何透明区域,你可以通过单击选择一个新的颜色。

    – Clipping Planes值定义摄像机的Z轴可视深度,默认值为 Near:0.3 和 Far:10 。我们的所有游戏对象都应该在摄像机的可视范围内。


本系列教程的所有链接:


2DToolkit官方文档中文版打地鼠教程(一):初始设置


创建一个Unity项目,并导入2D Toolkit插件。

导入完成后,在Project窗口会显示TK2DROOT文件夹(后续版本文件夹名称或许会有变动)。

导入素材游戏,你可以从这里下载。下载完成后,将素材导入到项目中。


本系列教程的所有链接: