您的位置:首页 > 移动开发 > Unity3D

Unity2D - 3. 手动绘制简单瓦片地图TileMap

2018-03-20 15:44 771 查看
之前使用的地图是一整张图片,手动添加BoxCollider2D,在实际的地图制作中肯定不可行,Unity在2D地图方面提供了瓦片地图(tilemap)工具,即将一个一个小方格的图片拼合在一起成为一张地图,每一个格子中的称为一个瓦片(tile)

新建一张瓦片地图TileMap

2D Object > TileMap

在unity2017.3版本中会新建一个
Grid
层,作为瓦片地图的网格,可以调整网格大小、间距等

Grid
中会有一个
TileMap
层,是瓦片地图的主体

新建好地图,然后需要绘制地图,就需要一个调色板了

新建一个调色板Palette

打开
Window > Tile palette
窗口,新建一个新的调色板,之后就可以将资源中的sprite拖放到调色板中,会自动生成瓦片的资源。

在拖放前,需要注意Pixels Per Unit(每单位像素数)和Pivot(中心点);前者影响瓦片的尺寸,后者影响瓦片的对齐方式,是sprite在调色板网格中的中心点



假设蓝色块是墙,白色块是地板,小黄块是地上的物体,大黄色块是有阴影的墙

设置瓦片属性

选中瓦片资源可以看到三个属性:

Sprite 要显示的图片,在上面已经说了

Color 附加的颜色,在做纯色瓦片的时候可以用来减少实际图片的数量,其它的想不出来有什么用处

Collider Type 碰撞方式,这个很重要:

None 没有碰撞

sprite 按照sprite尺寸生成碰撞体

grid 根据网格生成碰撞体

按照上面我们的设想,蓝色块应该设置为grid,白色块设置为none,小黄块设置为sprite,大黄块设置为grid

绘制地图

使用调色板就可以了,注意如果要在不同的瓦片地图上绘画,请修改
Active Tilemap


添加碰撞体

虽然已经绘制出了地图,也调整了瓦片的属性,但这时候移动player会发现地图是没有碰撞体积的,解决办法也很简单:给tilemap添加一个
Tilemap Collider 2D
就行了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Unity2D