Tilemap Collider 2D 组件为同一游戏对象上的 Tilemap 组件的瓦片生成__碰撞体__形状。在 Tilemap 组件中添加或删除瓦片时,Tilemap Collider 2D 组件会在 LateUpdate
期间更新碰撞体形状。它会批量处理多个瓦片的更改,以确保对性能的影响最小。
属性 | 功能 |
---|---|
Max Tile Change Count | 在进行完全碰撞体重建而不是增量重建之前,累积的瓦片更改(如对瓦片地图进行瓦片的添加/删除)的最大数量。 大量的累积更改会导致 Tilemap Collider 2D 增量重建的速度比完全重建要慢。减小此值可解决此问题。 |
Extrusion Factor | 设置每个瓦片挤出碰撞体形状的量(采用 Unity 世界空间单位)。这最大限度地减少了相邻瓦片的碰撞体形状之间的间隙,并使它们保持在__Composite Collider 2D__ 中的 Vertex Distance 设置的最小范围内,从而将瓦片碰撞体组合在一起。 默认情况下会禁用此属性,显示为灰色。仅当启用了 Used by Composite 并且同一个游戏对象附加了一个 2D 复合碰撞体 时可用。 |
Material | 一种物理材质,可用于确定__碰撞__的属性(例如摩擦和弹性)。 |
Is Trigger | 选中此复选框可使 Tilemap Collider 2D 组件作为触发器运行。 |
Used by Effector | 选中此复选框可使 Tilemap Collider 2D 组件由附加的 Effector 2D 组件使用。 |
Used by Composite | 选中此复选框可使此碰撞体被附加的 Composite Collider 2D 使用。 当 Used by Composite 启用时,Tilemap Collider 2D 组件中除 Offset 之外的所有属性都不再可用。相反,这些属性由附加的 Composite Collider 2D 组件控制。 |
Offset | Tilemap Collider 2D 几何形状的局部偏移。 |
为 Tilemap 组件中的每个瓦片生成的碰撞体形状取决于瓦片资源的属性中设置的所需碰撞体类型。组件的形状生成行为与碰撞体类型的对应关系如下:
碰撞体类型 | 功能 |
---|---|
None | Tilemap Collider 2D 组件不会为此瓦片生成任何碰撞体形状。 |
Sprite | Tilemap Collider 2D 组件基于分配给瓦片的精灵生成碰撞体形状。碰撞体形状基于为精灵设置的 Custom Physics Shape。 |
Grid | Tilemap Collider 2D 组件基于网格单元格的形状(由 Grid 组件的选定单元格布局 (Cell Layout) 确定)生成碰撞体形状。 |
您可以将 Tilemap Collider 2D 组件与 Composite Collider 2D 组件一同使用。当您将这两个组件添加到同一 Tilemap 组件时,Unity 将相邻瓦片的碰撞体形状合成在一起。这样可以平滑过渡相邻瓦片中碰撞体形状之间的角和边。
将这两个组件一起使用会减少物理更新中涉及的单个碰撞体形状的数量,从而减少所需的计算量,并将对性能的影响降至最低。
如果您需要将更改立即对碰撞体生效,请使用_TilemapCollider2D.ProcessTilemapChanges_ 立即进行处理。您可以使用 TilemapCollider2D.hasTilemapChanges 检查是否需要任何处理。
在 Unity 2020.1 中添加了新的属性 在 2017.2 版中添加了瓦片地图 NewIn20172