本文章使用的Unity版本为 Unity2018.4.36f1,脚本语言为C#
引言:
在Untiy2D中,我们可以使用Unity自带的Tilemap与其相关功能来方便地进行游戏关卡的制作,但是Unity自带的Brush和Tile分别只有一种,想实现一些特殊功能的话就有点不够用了,这时我们可以导入2d-extras拓展包来添加一些新的Brush,如Line Brush、Coordinate Brush等;以及一些新的Tiles,例如Pipeline Tile、Rule Tile等。
不过显而易见的是,这些新添加的Brush和Tiles的功能也是有限的(每种Brush和Tile都实现一种特殊功能),如果还是没有实现我们想要的功能,就只能自己来编写Bursh和Tile了,这篇文章重点介绍TileBase类以及它所含有的方法。
该文章大部分的内容其实是对Unity官方文档内容的转述与补充,因为Unity文档对一些地方写的不是太清楚,需要大量的自行理解,所以为了让大家理解得更加深入且高效(不用再去反复揣摩某些地方的意义),我就写了这么一篇文章,文章中有大量的地方是查阅了其他文章获得的资料和通过自行测试得出的结论,奈何作者水平有限,有些地方或许讲得并不准确甚至是错误的,大家有什么问题可以在评论区写出来。
正文:
Scriptable Tiles介绍:
首先说明的一点,Unity中是没有ScriptbaleTiles这个类的,这个称呼只是对这个概念的称呼,Scirptable Tiles是一种可编程的Tiles,也就是说,我们可以在Scriptable Tiles中编写我们自己想要的Tile功能。
下面将介绍一下要编写自己的Scriptable Tiles必须要认识的一些类。
TileBase类:
Unity中文文档介绍:
所有要添加到瓦片地图的瓦片必须继承自 TileBase
。TileBase
为瓦片地图提供了一组固定 API 来传达其渲染属性。对于 API 的大多数情况,瓦片的位置和瓦片所在瓦片地图的实例作为 API 的参数传入。由此可确定用于设置瓦片信息的所有必需属性。
Unity英文文档介绍: