当前位置:   article > 正文

unity 地图编辑器_Unity手游实战:从0开始SLG——世界地图篇(三)Tiled2Unity

unity 如何制作一个slg大地图

Tiled2Unity是一个免费开源的Unity工具(插件),可以把Tiled编辑器生成的地图和文件,导出给Unity使用。它不同平台的版本。

  • Windows下叫Tiled2Unity
  • Mac下叫 Tiled2UnityMac (是一个APP)
  • Linux下叫 Tiled2UnityLite ,但只是一个需要依赖Mono和CS-Script运行的命令行工具。

Mono: https://www.mono-project.com/download/

CS-Script: http://www.csscript.net

cbb10ecf5c6f472b9faeb66cdb5644b8.png

1、优缺点

前面我们说过,Unity的Tile是从2017.2才开始有的,所以在这之前Unity一直都不支持Tile类的功能编辑。但实际上相当一部分使用Unity进行开发的团队,要么就需要自己实现一个Tile编辑器,要么就可能转为Cocos或者其他引擎进行开发。

鉴于此,Seanba大神自己写了一套全开源的代码去结合非常火爆的Tiled编辑器使用。Tiled编辑器上一节我们有提到过,这里不过多介绍了。而Tiled2Unity工具的用法也非常简单,为了防止重复造车,下面会给出之前行业大大们总结的经验和教程。

因为我们项目实际上没有使用这个插件,所以具体的性能和实现也没有深入的去研究,只是大概的过了一遍,可能会有一些说明错误。但我是个聪明人,才不会把这样的错误暴露给你们,于是我找了一篇已经分析好的文章做搬运。文章链接会贴在下面。

优点

  1. 完全开源,完全免费。
  2. 自动合并图块为Mesh与很多别的插件的做法不同,Tiled2Unity不是用Sprite来表示每一个图块,而是将同一层的图块都合并成一个Mesh,然后把整个图集作为纹理(Texture)贴到Mesh上。这样做的好处是,大大减少GameObject的数量。比如,一个40x40的图,如果图块覆盖率是50%,使用Sprite对象的话,那就会产生800个对象,而用Tiled2Unity的方法,每一层(Layer)只产生1-2个对象(如果有碰撞盒)
  3. 自动合并碰撞盒除了合并同层的图块,Tiled2Unity还会自动合并同层碰撞盒。利用一个第三方库Clipper (http://www.angusj.com/delphi/clipper.php ),Tiled2Unity可将带有矩形或者多边形碰撞盒的图块,合并成到同一个多边形碰撞盒。这样就大大减少了Collider组件的数量。
  4. 自定义Unity标签通过简单的自定义属性,可以方便的修改Tag,SortingLayer,Layer等属性。
  5. 允许自定义脚本来完成更复杂的导入需求一般来说,每个游戏都有自己的一套地图逻辑,与其提供大量的自定义标签,Tiled2Unity选择使用自定义脚本来实现这个需求。
  6. 提供命令行工具,便于自动化导入
  7. 详尽的教程和文档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中设计好前后层关系,并添加对应的层名。这使得工作流程产生较大的前后依赖关系,增加了手工工作量,复杂度和沟通的成本,容易产生人为错误。这是一个生产工具的大忌。
  2. 在2D游戏中,混用Sprite Renderer和Mesh Renderer。

作者认为在2D游戏中混用Sprite Renderer和Mesh Renderer是不好的行为,我也这么认为。

技术上最常用的一个次叫做“技术债务”。但其实还有另外一个不常用到的词叫“代码异味”。代码异味是指任何可能导致深层次问题的代码或者设计。所以混用会在一致性上导致“代码异味”的产生。当然这个其实并不是代码问题,只是拿它来举个例子。

总的来说,在没有更好工具支撑的前提下,这个工具是可以完成功能的,但是在性能和设计上还是有比较大的问题,下一节,我们会详细讲一下它的升级版本:SuperTiled2Unity。

2、学习资料

1、Git:https://github.com/Seanba/Tiled2Unity

2、主页:https://tiled2unity.readthedocs.io/en/latest/

3、文档:https://tiled2unity.readthedocs.io/en/latest/getting-started/

4、下载:http://www.seanba.com/tiled2unity

5、类似洛克人的独立案例:https://seanba.com/megadadadventures.html

6、大佬博客1:Tiled结合Unity实现地图——Tiled2Unity篇

:https://blog.csdn.net/qq_35307209/article/details/80452621

7、大佬博客2:Tiled结合Unity实现瓦片地图——Unity实战篇

:https://blog.csdn.net/lzhq1982/article/details/75425915

8、大佬博客3:Unity~Tiled地图编辑器和Tiled2Unity 插件导入地图的简单使用

:https://blog.csdn.net/jinxiul5/article/details/82148872

9、大佬总结的优缺点:

https://www.gameres.com/762928.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/99870
推荐阅读
相关标签
  

闽ICP备14008679号