本文共 1394 字,大约阅读时间需要 4 分钟。
用Tiled工具可以快速制作关卡地图,但是,与很多国内的游戏引擎(Cocos/Egret等)不同,Unity天生并不支持Tiled,官方说的要支持,也迟迟没有发布。于是,就催生了很多第三方的Tiled for Unity 库。
在网上搜 Tiled Unity,收费与不收费的可以找到很多。其中,排名第一的Tiled2Unity是非常有特色的一个。优点这样做的好处是,大大减少GameObject的数量。比如,一个40x40的图,如果图块覆盖率是50%,使用Sprite对象的话,那就会产生800个对象,而用Tiled2Unity的方法,每一层(Layer)只产生1-2个对象(如果有碰撞盒)
利用一个第三方库Clipper,Tiled2Unity可将带有矩形或者多边形碰撞盒的图块,合并成到同一个多边形碰撞盒。这样就大大减少了Collider组件的数量。
好了,说了一大堆优点,再说几个缺点:
Unity中,Sprite的Shader与普通的Mesh所用的Shader是不一样的,最大的区别除了默认不响应光照,还有关闭了Z缓冲器,然后引入SortingLayer和Order in layer两个值来控制图片的前后遮挡关系。所以,Sprite对象的z轴的值通常是没有用。
而Mesh方式,默认是使用Z缓冲区来做前后遮挡的,所以需要使用z轴的值。为了解决这个问题,Tiled2Map自己实现了一系列的Shader,然后需要使用者在Tiled里使用一个自定义属性unity:sortingLayerName来规划好每一层的渲染顺序。这就导致,我们需要1). 提前在Unity中规划好渲染层级2). 让关卡设计人员在Tiled中设计好前后层关系,并添加对应的层名。这使得工作流程产生较大的前后依赖关系,增加了手工工作量,复杂度和沟通的成本,容易产生人为错误。这是一个生产工具的大忌。可以看到,以上缺点其实也是伴随着优点产生的,这只是一种策略选择的问题。因为不管使用什么策略,都会有它的优点和缺点。这也是我们作为一个开发人员在技术选型时最需要考虑和评估的地方。
更多unity2018的功能介绍请到paws3d学习中心查找。转载地址:http://iaxyl.baihongyu.com/