SuperTile2Unity的相关资料不多(至少我能找到的有限),这里还是搬运一下它自己的文档介绍,方便大家初步了解。
1、使用SuperTile2Unity进行排序
从地图导入的层面来说,Tiled编辑所编辑的文件,SuperTile2Unity提供了两种层级排序选项。
![feeda32bea9022619556e63ede21262f.png](https://img-blog.csdnimg.cn/img_convert/feeda32bea9022619556e63ede21262f.png)
- Stacked 默认的排序选项,匹配Tiled里 layers and objects 提供的选人顺序。
- Custom Sort Axis 借助自定义排序轴(Unity中的设置项)进行排序。
Stacked 是一个默认设置,对于横向卷轴的游戏来说是一个较好的效果。在这种设置下,玩家或者其他游戏对象在地图上移动的时候,不会改变他们的渲染顺序。
架空游戏可能更喜欢使用Custom Sort Axis设置。这需要更多的精力去维护,但是如果你需要游戏对象相对于图块的渲染顺序是动态的,那么这个方式就是必需的。比如下图:
![4bc5c6ea866b096d4805c485942c391d.png](https://img-blog.csdnimg.cn/img_convert/4bc5c6ea866b096d4805c485942c391d.png)
示例来自于SuperTiled2Unity,使用了 Custom Sort Axis,所以我们可以让我们的主角在渲染的时候根据需要显示在柱子前面或者后面。
1.1 SuperTile2Unity是如何完成排序的
在Unity里,通常是通过Sprite Renderer 和 Tilemap Renderer组件的两个设置来完整渲染排序的。
- Sorting Layer 参阅 Tag Manager 进行管理.
- Order in Layer 在同一个 Sorting Layer 下如何进行排序。
SuperTiled2United执行排序几乎主要是通过操纵它在导入期间创建的预置组件的Order in Layer设置。默认情况下,所有平铺层都使用Unity内置的Default排序层,然后让Order in Layer不断增加。
![555dc715d1a09d859b2255555308df7b.png](https://img-blog.csdnimg.cn/img_convert/555dc715d1a09d859b2255555308df7b.png)
Tile里层级越高,对应转化到Unity里的层级也越高。
然而,大多数Unity项目都会有一些自定义的Sorting Layers,我们希望将这些层混合在一起使用。这个时候就需要用到一个特别命名的自定义属性Unitity:SortingLayer,它将进一步指导SuperTiled2United如何分配排序字段。
![773d8b508e340a45e23e7290531f235d.png](https://img-blog.csdnimg.cn/img_convert/773d8b508e340a45e23e7290531f235d.png)