1、添加Tilemap Collider 2D 组件
Tilemap上所有的格子都添加上碰撞器了,但是我们只是想让一些固定的物体添加碰撞器,比如只想让河添加碰撞器。
- 找到Tiles 文件夹,选中所有除了河的Tile资源
- 选中后修改它们的Collider Type, 从 Sprite 改为None, 这样这些瓦片就不会产生碰撞器组件了
这时我们的Tilemap中除了河之外的瓦片,就没有碰撞器组件了
下面需要对河这部分碰撞器做一个优化:
河这些碰撞器都是一个一个格子的,它是以tile瓦片为单位去添加碰撞器的,这样虽然没问题。但是从性能角度考虑不太好
。
因为这里会使用Unity物理系统,使用物理系统就会涉及到物理计算,碰撞器越多,物理计算消耗的性能就越大。如果场景很大时,计算量就更大了,游戏的运行速度就会变慢,可能导致卡顿。
还有一个问题是,如此多的小格子碰撞器,我们的Ruby与碰撞器发生碰撞时,可能卡到某个缝隙中。
为了优化上述两个问题
,Unity提供一种方式可以把每个瓦片上单独的碰撞器,组织在一起变成一个大的碰撞器
,我们只需要在Tilemap节点上添加一个 Composite Collider 2D
组件。
我们发现,当我们的Tilemap添加了一个 Composite Collider 2D 组件后,会自动挂上一个 Rigidbody 2D这样一个刚体组件:
不想让它们受力移动,改为Static
。接着,勾选上Tilemap Collider 2D中的 Used By Composite
选项:
这时,就会变成一个整体的大的碰撞器