介绍一下Tiled2Unity的优点与缺点

用Tiled工具可以快速制作关卡地图,但是,与很多国内的游戏引擎(Cocos/Egret等)不同,Unity天生并不支持Tiled,官方说的要支持,也迟迟没有发布。于是,就催生了很多第三方的Tiled for Unity 库。
在网上搜 Tiled Unity,收费与不收费的可以找到很多。
其中,排名第一的Tiled2Unity是非常有特色的一个。
优点

  1. 完全开源,完全免费。
  2. 自动合并图块为Mesh
    与很多别的插件的做法不同,Tiled2Unity不是用Sprite来表示每一个图块,而是将同一层的图块都合并成一个Mesh,然后把整个图集作为纹理(Texture)贴到Mesh上。

这样做的好处是,大大减少GameObject的数量。比如,一个40x40的图,如果图块覆盖率是50%,使用Sprite对象的话,那就会产生800个对象,而用Tiled2Unity的方法,每一层(Layer)只产生1-2个对象(如果有碰撞盒)

  1. 自动合并碰撞盒
    除了合并同层的图块,Tiled2Unity还会自动合并同层碰撞盒。

利用一个第三方库Clipper,Tiled2Unity可将带有矩形或者多边形碰撞盒的图块,合并成到同一个多边形碰撞盒。这样就大大减少了Collider组件的数量。

  1. 自定义Unity标签
    通过简单的自定义属性,可以方便的修改Tag,SortingLayer,Layer等属性。
  2. 允许自定义脚本来完成更复杂的导入需求
    一般来说,每个游戏都有自己的一套地图逻辑,与其提供大量的自定义标签,Tiled2Unity选择使用自定义脚本来实现这个需求。
  3. 提供命令行工具,便于自动化导入
  4. 详尽的教程和文档
    Tiled2Unity 提供了还算比较详细的使用文档和教程,以及自己的设计思路。

好了,说了一大堆优点,再说几个缺点:

  1. 合并图块为Mesh
    为什么说这个也是缺点呢。因为,大部分2d游戏中,我们都是使用Sprite来作为渲染组件。

Unity中,Sprite的Shader与普通的Mesh所用的Shader是不一样的,最大的区别除了默认不响应光照,还有关闭了Z缓冲器,然后引入SortingLayer和Order in layer两个值来控制图片的前后遮挡关系。所以,Sprite对象的z轴的值通常是没有用。
而Mesh方式,默认是使用Z缓冲区来做前后遮挡的,所以需要使用z轴的值。为了解决这个问题,Tiled2Map自己实现了一系列的Shader,然后需要使用者在Tiled里使用一个自定义属性unity:sortingLayerName来规划好每一层的渲染顺序。
这就导致,我们需要
1). 提前在Unity中规划好渲染层级
2). 让关卡设计人员在Tiled中设计好前后层关系,并添加对应的层名。
这使得工作流程产生较大的前后依赖关系,增加了手工工作量,复杂度和沟通的成本,容易产生人为错误。这是一个生产工具的大忌。

  1. 在2D游戏中,混用Sprite Renderer和Mesh Renderer
    这个是我个人的洁癖,感觉这样的用法不够纯粹。

可以看到,以上缺点其实也是伴随着优点产生的,这只是一种策略选择的问题。因为不管使用什么策略,都会有它的优点和缺点。这也是我们作为一个开发人员在技术选型时最需要考虑和评估的地方。
更多unity2018的功能介绍请到paws3d学习中心查找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值