前言
游戏地图上会有障碍物和地图边界这种设置,它们需要与游戏角色产生碰撞。跟精灵一样,需要添加collide和Rigidbody组件。
地图分层
在设置障碍物的时候,最好是将地图背景放到一个单独的Tilemap中,然后在将障碍物单独放入一个Tilemap。因为在添加collide组件时是为整个Tilemap添加。
当Tilemap有多层时,需要注意它们的渲染顺序,最好是通过调整Tilemap Renderer 中的order in Layer 属性,来决定地图的渲染顺序,值越小即越先被渲染,即值越小的地图会被后面渲染的地图覆盖在下面。
这里我将地图背景和障碍物分为了两层:
将障碍物图层的order in layer属性设置为1,这样它就可以显示在背景的上方了。
为Tilemap添加Collide
在Tilemap的Inspector Window中点击Add Component ,添加两个组件:
- Tilemap Collider 2d
- Composite Collider 2d
Tilemap Collider 2d会为每一个瓦片添加一个碰撞包围盒,用于碰撞检测时使用。但是如果图层上有过多的瓦片,会很耗费性能。所以需要使用Composite Collider 2d合并瓦片上的包围盒,它可以将紧挨着的两个瓦片的包围盒合并成一个,这样可以大大的减少碰撞带来的性能消耗。
在添加Composite Collider 2d时会自动添加一个Rigidbody 2d组件,这个组件也是为了实现碰撞,详情可参考碰撞检测的简单使用。
注意:使用Composite Collider 2d组件,需要在Collider 2d组件上勾选use Composite,否则合并不会生效
文章评论