Unity3D:瓦片地图 2D 碰撞体
推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生
瓦片地图 2D 碰撞体 (Tilemap Collider 2D)
图块映射碰撞体 2D 组件为同一游戏对象上的图块组件上的图块生成碰撞体形状。在“图块地图”组件上添加或删除“图块”时,“图块映射碰撞体 2D ”会在 期间更新“磁贴体”形状。它将多个磁贴更改批处理在一起,以确保对性能的影响最小。LateUpdate
Tilemap Collider 2D 属性

属性 | 功能 |
---|---|
Max Tile Change Count | 在执行完全碰撞体重建(而不是增量重建)之前要累积的最大图块更改数(例如在瓦片地图中添加/删除图块)。 大量累积的更改可能会导致 Tilemap 碰撞体 2D 的增量重建速度比完全重建慢。减小此值可解决此问题。 |
Extrusion Factor | 设置数量(以 Unity 世界空间单位为单位)以拉伸每个图块的碰撞体形状。这样可以最大程度地减少相邻图块的碰撞体形状之间的间隙,并使它们达到复合碰撞体 2D 中设置的最小顶点距离,然后复合碰撞体可以将图块碰撞体组合在一起。 默认情况下,此属性灰显并处于禁用状态。仅当启用了“由合成使用”并且复合碰撞体 2D 附加到同一游戏对象时,它才可用。 |
Material | 一种物理材质,用于确定碰撞的属性,例如摩擦和反弹。 |
Is Trigger | 选中此复选框可使 Tilemap Collider 2D 组件作为触发器运行。 |
Used by Effector | 选中此复选框可使附加的 2D 效果器使用瓦片地图碰撞体 2D。 |
Used by Composite | 选中此复选框可使附加的 2D 复合碰撞体使用此碰撞体。启用“由复合使用”后,除“偏移”之外的所有属性在 Tilemap 碰撞体 2D 组件中将不再可用。 相反,属性由附加的复合碰撞体 2D 组件控制。 |
Offset | Tilemap Collider 2D 几何形状的局部偏移。 |
碰撞体类型对碰撞体生成的影响
为图块地图中的每个磁贴生成的碰撞体形状取决于图块资源属性中设置的所需碰撞体类型。组件的形状生成行为通过以下方式与碰撞体类型相对应:
碰撞体类型 | 功能 |
---|---|
无 | Tilemap Collider 2D 组件不会为此瓦片生成任何碰撞体形状。 |
Sprite | 图块映射碰撞体 2D 组件根据分配给图块的精灵生成碰撞体形状。碰撞体形状基于为精灵设置的自定义物理形状。 |
Grid | Tilemap Collider 2D 组件基于网格单元格的形状(由 Grid 组件的选定单元格布局 (Cell Layout) 确定)生成碰撞体形状。 |
瓦片地图和复合碰撞体
您可以将 2D 瓦片地图碰撞体组件与复合碰撞体 2D 组件一起使用。将两个组件添加到同一图块贴图时,Unity 会将相邻图块的碰撞体形状合成在一起。这将平滑相邻图块中碰撞体形状之间的角和边缘。
将这两个组件一起使用会减少物理更新中涉及的单个碰撞体形状的数量,从而减少所需的计算量,并将对性能的影响降至最低。
脚本 API 提示
如果需要立即对碰撞体进行更改,请使用 Tilemaps.TilemapCollider2D.ProcessTilemapChanges 立即处理它们。您可以使用 Tilemaps.TilemapCollider2D-hasTilemapChanges 来检查是否需要任何处理。
此文由3D建模学习工作室整理翻译,转载请注明出处!