给Tilemap添加2D 碰撞器组件

1、添加Tilemap Collider 2D 组件

image.png

Tilemap上所有的格子都添加上碰撞器了,但是我们只是想让一些固定的物体添加碰撞器,比如只想让河添加碰撞器。

image.png
image.png
  • 找到Tiles 文件夹,选中所有除了河的Tile资源
  • 选中后修改它们的Collider Type, 从 Sprite 改为None, 这样这些瓦片就不会产生碰撞器组件了

这时我们的Tilemap中除了河之外的瓦片,就没有碰撞器组件了

image.png

下面需要对河这部分碰撞器做一个优化:

河这些碰撞器都是一个一个格子的,它是以tile瓦片为单位去添加碰撞器的,这样虽然没问题。但是从性能角度考虑不太好

  • 因为这里会使用Unity物理系统,使用物理系统就会涉及到物理计算,碰撞器越多,物理计算消耗的性能就越大。如果场景很大时,计算量就更大了,游戏的运行速度就会变慢,可能导致卡顿。

  • 还有一个问题是,如此多的小格子碰撞器,我们的Ruby与碰撞器发生碰撞时,可能卡到某个缝隙中。

为了优化上述两个问题,Unity提供一种方式可以把每个瓦片上单独的碰撞器,组织在一起变成一个大的碰撞器,我们只需要在Tilemap节点上添加一个 Composite Collider 2D 组件。

image.png

我们发现,当我们的Tilemap添加了一个 Composite Collider 2D 组件后,会自动挂上一个 Rigidbody 2D这样一个刚体组件:

image.png

不想让它们受力移动,改为Static。接着,勾选上Tilemap Collider 2D中的 Used By Composite 选项:

image.png

这时,就会变成一个整体的大的碰撞器

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容