Ruby‘s Adventure 学习笔记—— 场景搭建

1.2D场景地板布置中Tilemap应用

Ruby‘s Adventure 学习笔记—— 场景搭建_第1张图片

图片转自:https://www.cnblogs.com/sweetXiaoma/p/9342121.html   

 Tilemap(瓦片地图)是tile(一种特殊的sprite)的容器,类似将世界分为很多个大小相同的小块,便于用tile进行填充。

①问题场景:在铺设游戏环境(背景)的时候,可以直接使用图片转sprite,然后通过拖拽在scene 中进行拼接来实现。但是会存在拼接过程繁琐,拼接图片之间有缝隙的问题。tilemap          可以用于简化这个过程

②使用方法:1).Heirachy窗口中右键->2D Object->Tilemap创建

                  2).Tilemap需要用Tile填充,Tile需要在Tile pallete中实现。先创建一个Tile pallete,Widow->2D->Tile pallete。创建完成后,pallete是空的,要新建一个(有提示)。创建完成后可以将sprite拖入pallete,生成Tile,可单独保存在一个folder。

Tile可以是整个sprite,也可以将一个sprite切分,区别在于在绘制时,刷子只能一块一块的使用Tile进行填充,将sprite切分可以使用图片中的一部分进行整个map的填充。sprite的切分可以在sprite的Inspector->sprite editor进行

将sprite拖进pallete形成tile,用刷子选取pallete中的tile的块

Ruby‘s Adventure 学习笔记—— 场景搭建_第2张图片

按格子绘制地图

Ruby‘s Adventure 学习笔记—— 场景搭建_第3张图片

 ③限制:适用于色块比较单一的场景,比如超级马里奥的地图,或者比较简单的平台跳跃类游戏

2.给Tilemap添加collider

 ①问题场景:绘制的地图本质上还是sprite的拼接体,所以想要规定活动范围,需要添加碰撞体。但是跟普通的sprite添加碰撞体有区别的是,活动范围并不是简单的一个矩形可以包括的。

②问题解决:1)首先给Tilemap添加专用的Tilemap Collider 2D,这时候可以发现Unity给每个格子都单独添加了collider,如果直接使用,会导致角色被挤出地图

                      2)这时,可以在地图中使用的tile处,将不添加collider的tile的Collider Type改成None(注意是tile的属性,不是sprite的属性,前面给tile建了folder的话,在里面找tile)

                      3)经过2)之后现在是分的格子,每个都添加了collider。像上面图里的两个湖。但是实际上只需要外边一圈的collider就够了,多个collider会占用性能。需要给Tilemap加个Composite Collider 2D组件,然后选中Tilemap Collider 2D中的

 就实现了只保存外边一圈的collider(composite可以调属性,决定怎么将格子的collider融合成一个)

 

 小白自己做笔记用,请选择性的看,欢迎批评指正,谢谢。

你可能感兴趣的:(unity3d)