文章目录

  • 场景创建
  • 角色
  • 血条
  • 地图(TileMap)


场景创建

在场景创建这一块中有很多东西太基础就没讲,我就说说2D开发中可能会遇到的问题。

角色

unity3d 二进制 构建图片 unity制作2d_瓦片地图


在unity场景中新建一个sprite作为我们的角色。

我想要实现的效果是2d横板游戏,所以暂时我认为角色需要有一个血条在头上。

unity3d 二进制 构建图片 unity制作2d_unity3d 二进制 构建图片_02


如上图所示,考虑到之后我们移动的时候会修改角色的转向,所以我们需要把角色和血条分开来,

会旋转的是man(今后如果还有其它需要转向的可以放进这个的子物体里),不会旋转的是blood,而我们输入信号控制移动的对象是player这个父物体,这样就能使血条和角色一起移动了。

血条

为了让我们的血条要跟随玩家一起移动,我们可以新建一个canvas,把渲染模式设置为世界坐标(worldplace)。

unity3d 二进制 构建图片 unity制作2d_unity3d 二进制 构建图片_03


之后我们创建两个image,一个作为血的槽,一个作为血量的标识,

unity3d 二进制 构建图片 unity制作2d_ide_04


第二个image需要设置类型为filled,填充方法设置为horizon,这样我们就能通过修改filledcount来修改血槽的长度了。

地图(TileMap)

unity3d 二进制 构建图片 unity制作2d_ide_05


在场景中新建TileMap对象,再在工具栏的窗口选项中进入2d选项打开tilepalette(瓦片调色板),打开调色板窗口,然后把我们的瓦片资源拖进调色板中,开始刷地图。

刷完地图后我们给我们的Tilemap对象加上组件复合碰撞器(CompositeCollider2D)和瓦片地图碰撞器(TilemapCollider2D)。由于复合碰撞器依赖于刚体组件,所以Unity会为我们加上刚体组件。

unity3d 二进制 构建图片 unity制作2d_瓦片地图_06


但是加上的刚体类型默认是动态的,这会导致我们的瓦片地图受重力影响而掉落,所以我们需要把动态改成静态。

unity3d 二进制 构建图片 unity制作2d_瓦片地图_07


然后我们把瓦片地图碰撞器组件的由复合使用勾选上

之所以这么做,原因是复合碰撞器能够帮我们把一个物体上的多个碰撞体复合起来,让它们成为一个整体,如果不使用复合碰撞器,可能会导致瓦片地面不光滑使角色在移动时受阻,同时使用复合碰撞器可以减少不必要的检测,因为玩家不会在地图里移动。