美文网首页Unity游戏开发学习记录
给Tilemap添加2D 碰撞器组件

给Tilemap添加2D 碰撞器组件

作者: 我阿郑 | 来源:发表于2024-03-08 11:08 被阅读0次

    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

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

    相关文章

      网友评论

        本文标题:给Tilemap添加2D 碰撞器组件

        本文链接:https://www.haomeiwen.com/subject/togszdtx.html