Tilemap Collider 2D 组件为瓦片图组件中的瓦片生成 Collider 形状。当您在瓦片图组件上添加或删除瓦片时,Tilemap Collider 2D 会在 LateUpdate
期间更新 Collider 形状。它将多个瓦片更改组合在一起,以确保对性能的影响最小。
属性 | 功能 | |
---|---|---|
最大瓦片更改数 | 设置积累到进行完整 Collider 重建之前最多可发生的瓦片更改数(例如,将瓦片添加到/从瓦片图中删除)。 注意: 累积的更改数量过多可能导致 Tilemap Collider 2D 的增量重建速度比完整重建慢。降低此值以解决问题。 |
|
挤压试因数 | 设置延展量(以 Unity 世界的单位进行),以挤出每个瓦片的 Collider 形状。这最小化了相邻瓦片 Collider 形状之间的间隙,并将它们带到设置在 Composite Collider 2D 中的最小 Vertex Distance 以内,然后可以组合瓦片 Collider。 注意: 默认情况下此属性不可用。启用 用于组合,并为同一 GameObject 附上 Composite Collider 2D 时可使用此属性。 |
|
材质 | 选择确定 Physics Material 2D用于调整 2D 物理对象在发生碰撞时的摩擦和反弹更多 在 词汇表中查看 的属性,例如摩擦和反弹。 |
|
是触发器 | 启用此选项,如果希望此 2D Collider 作为触发器行为。当启用时,物理系统忽略此 Collider。 | |
由效应对 | 启用此项,若要使2D碰撞体被附加的2D效应器使用。 | |
用于组合 | 启用此项以使用此碰撞体与附加的2D组合碰撞体。 当启用用于组合后,在Tilemap 2D碰撞体组件和附加的2D组合碰撞体组件中,所有属性(除偏移量外)将不再可用,而是由2D组合碰撞体组件控制碰撞体属性。 |
|
偏移 | 设置Collider 2D几何形状的局部偏移值。 | |
图层覆盖 | 展开以查看图层覆盖设置。 | |
图层覆盖优先级 | 分配此Collider2D在解决与另一个Collision2D之间接触是否发生时的冲突决策时的决策优先级。有关更多信息,请参阅其API页面。 | |
包含图层 | 选择此Collider2D在决定是否发生与另一个Collider2D的接触时应该包含的附加图层。有关更多信息,请参阅其API文档。 | |
排除图层 | 选择此Collider2D在决定是否发生与另一个Collider2D的接触时应该排除的附加图层。有关更多信息,请参阅其API文档。 | |
强制发送图层 | 选择此Collider2D在与其他Collider2D的碰撞接触中允许发送力量的图层。有关更多信息,请参阅其API文档。 | |
强制接收图层 | 选择在此Collider2D与其他Collider2D的碰撞接触中可以接收力量的图层。有关更多信息,请参阅其API文档。 | |
合约捕获图层 | 选择在与此Collider2D接触时会捕获的其他Collider2D图层。有关更多信息,请参阅其API文档。 | |
回调图层 | 选择在与其他Collider2D接触时将报告碰撞或触发回调的图层。有关更多信息,请参阅其API文档。 |
Tilemap中每个Tile生成的碰撞体形状取决于在Tile资产属性中设置的所需碰撞体类型。组件的形状生成行为对应于以下碰撞体类型
碰撞体类型 | 功能 |
---|---|
无 | Tilemap 2D碰撞体组件不为此Tile生成任何碰撞体形状。 |
Sprite2D图形对象。如果你习惯了3D工作,Sprite几乎就是标准的纹理,但在开发过程中会有特殊的技巧来合并和管理sprite纹理以提高效率和便利性。 更多信息 参阅词汇表 |
Tilemap 2D碰撞体组件基于分配给Tile的Sprite生成碰撞体形状。碰撞体形状基于为Sprite设置的自定义物理形状。 |
网格 | Tilemap 2D碰撞体组件基于网格单元格的形状生成碰撞体形状,该形状由网格组件选择的单元格布局确定。 |
你可以将Tilemap 2D碰撞体组件与2D组合碰撞体组件一起使用。当你将两个组件添加到同一Tilemap中时,Unity将相邻Tile的碰撞体形状组合在一起。这使相邻Tile的碰撞体形状的角落和边缘更平滑。
同时使用组件可以减少物理更新中涉及的个体Collider形状数量,这降低了所需的计算量,并最大限度地减少了性能影响。
如果您需要立即对Collider进行更改,请使用Tilemaps.TilemapCollider2D.ProcessTilemapChanges来立即处理它们。您可以使用Tilemaps.TilemapCollider2D-hasTilemapChanges来检查是否需要进行处理。
TilemapCollider2D