赞
踩
在学习瓦片地图的使用时,我发现无论国内外还是Unity官方的相关教程都比较散,接触的比较浅,学的我挺难受的,所以就把各个地方看的教程加上我自己的理解,和官方的API手册,总结出了这个详解。
TileMap是Unity5.5a实验版加入的新功能,就像他的字面意思「瓦片地图」。
但说起来这个技术并不“新”了,成熟的2D引擎(诸如gamemaker,RpgMaker),都带有自己自己的tile编辑器的,第三方的编辑工具如Tiled使用起来也是比较方便的,Tile编辑器界的老牌开源编辑器Tiled,很多引擎也提供Tiled导入的支持。
TileMap 是有助于快速搭建整体关卡的利器。如果没有它,开发者要么只有用最笨的方法手动逐一搭建,要么自己写编辑器,要么借助于第三方编辑软件,而这三种方法其实对初学者都不是很友好。
Tilemap用起来其实就和现实中画画一样,它由以下五个基本部分组成:
Tilemap部分其它工具:
TilePalette(瓦片调色板) 中可以找到用来绘制Tile的绘图工具:
从左至右依次为:
TilePalette面板上有一个Edit,如果选上的话可以编辑在TilePalette面板中的Tile资源。
在Tilemap中添加碰撞体十分简单,只要给Tilemap对象加入一个Tilemap Collider 2D组件即可。
可以看到,这个组件自动为该Tilemap上的所有瓦片都加入了碰撞体。
我们可以通过再添加Composite Collider来优化这里的碰撞体,Rigidbody 2D组件会随着Composite Collider自动添加。
因为平台不会移动,所以要记得将Rigidbody 2D上的Body Type属性设置为Static。
最后在Tilemap Collider 2D上勾选Used By Composite,在整个平台周围生成一个复合碰撞体。
设置好后的检视窗口如下所示。
这样我们的Tilemap部分就完成了。
问题原因:
原因在于我们对图片进行切片时,Pixels Per Unit 数值的问题。
问题分析:
它的含义是每个unit单元格所能容纳该图片的多少个像素。上图依次为Pixels Per Unit为不同值时每个瓦片与Scene场景下一个Unit的比例。拿Pixels Per Unit=43来说,其含义是每个unit只够装下43个像素,而我们的美术图片(左)像素为1024x1024,算下来每个瓦片有128像素,我们却只给每个Unit43像素,所以从最右边图片我们可以看出大概9个unit才可以放下一个瓦片。
如何解决:
对每张将要被做成瓦片的美术资源进行Pixels Per Unit的计算。如本例最合理的数值为 1024/8 = 128
非瓦片的Sprite直接拖拽进入Scene进行缩放操作即可。
问题原因:
AnimatedTile的RuleTile的功能存在差异
AnimatedTile:
RuleTile
(前提是设置瓦片output类型为Animation):
总结:
对于带有Animation的瓦片,我们应该按需选择Tile的类型。
例如:不同启用时间的地刺,我们应当选择AnimatedTi
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。