随着Unity 2018.3发布,我们加入了Isometric Tilemap等距瓦片地图,Hexagonal Tilemap六边形瓦片地图也在Unity 2018.2中加入。
全新的Tilemap功能提供了一种快速且高效的方式,来创作基于等距六边形网格布局的2D环境,这种环境被用于很多经典游戏,包括:《暗黑破坏神》、《辐射》系列、《文明》、《帝国时代》等。
项目下载
Isometric Tilemap等距瓦片地图,Hexagonal Tilemap六边形瓦片地图都构建于Unity 2017.2加入的Tilemap系统。
它们原生集成到Unity编辑器中,在Unity的未来版本中,这些功能可能会转移至资源包管理器中。
如果你对这些功能感兴趣,可以下载Isometric Starter Kit项目,其中包含动态角色和多个环境瓦片集。
Isometric Starter Kit项目下载:
https://oc.unity3d.com/index.php/s/E4UPMiU8hBc4Yqk
等距瓦片地图项目设置
开始使用Tilemap前,正确设置项目非常重要。等距瓦片地图适用于2D精灵,需要使用正确的渲染器来实现俯视角等距视图的效果。我们需要确保先渲染距离观看者较远的瓦片,然后再渲染距离较近的瓦片。
为了自定义屏幕上绘制2D对象的顺序,我们可以使用Unity的Custom Axis Sort自定义轴排序功能。我们可以根据摄像机定义该设置,或者在项目级别上进行全局定义。
在项目级别上定义Custom Axis Sort时,请点击Edit > Project Settings > Graphics,在Camera Settings部分,我们将看见Transparency Sort Mode下拉列表,以及Transparency Sort Axis的X,Y和Z值的设置。
默认情况下,Unity中Transparency Sort Axis的XYZ被设为(0, 0, 1)。但是,所有2D瓦片实际上位于相同的Z平面,因此我们可以通过使用屏幕上的高度而不是深度来定义瓦片位于前面还是背后,位于屏幕上较高位置的瓦片会排序在较低位置的瓦片后。
根据高度排序瓦片时,把Transparency Sort Mode改为Custom,把Transparency Sort Axis设为(0, 1, 0)。
了解2D排序的工作方式,请访问:
https://docs.unity3d.com/Manual/2DSorting.html
Tilemap类型
Tilemap功能由多个组件协同工作组成,首先是Grid网格和Tilemap瓦片地图游戏对象。
创建网格,只需在层级窗口单击右键,然后在2D Object选择希望使用的Tilemap类型。默认情况下,每个新网格会和一个对应类型的Tilemap子游戏对象同时创建。
目前支持的Tilemap类型有:
Tilemap-创建矩形网格和Tilemap,在2D Game Kit可以看到使用这种Tilemap的示例。
Hexagonal Point Top Tilemap-创建六边形网格和Tilemap,每个六边形的其中一个顶点指向屏幕上方。
Hexagonal Flat Top Tilemap-另一种六边形网格类型,该类型六边形的顶部是一条平行于屏幕顶部的边。
Isometric和Isometric Z as Y-这二种类型创建二个不同的等距网格实现,二者区别出现在模拟不同瓦片高度级别的时候,例如:在等距关卡有升高平台的时候。
常规Isometric Tilemap最适合用于为每个独立的瓦片高度级别,创建单独Tilemap游戏对象,它会简化创建自动碰撞形状的过程,但瓦片之间高度变化的灵活性较小,因为同一图层的所有瓦片必须位于相同“平面”。
对于Isometric Z as Y Tilemap,每个瓦片的Z位置值会和自定义Transparency Axis Sort设置结合使用&