physicsShapeGroup | 用于存储检索到的 PhysicsShape2D 的 PhysicsShapeGroup2D。 |
int 返回从 Collider2D 检索到的 PhysicsShape2D 的数量。
获取 Collider2D 使用的所有 PhysicsShape2D。
所有 Collider2D 表示 2D 几何的高级定义,用于创建物理引擎用于碰撞检测的高效低级基本形状。这些低级基本形状是 Unity 编辑器中 2D 物理 Gizmo 所绘制的内容。此方法提供了对这些基本形状副本的访问权限,这在各种用例中非常有用,例如调试和 Gizmo 或在运行时渲染 Collider2D 几何体。
使用此方法可以访问由 Collider2D 生成的所有低级基本形状的副本。如果 Collider2D 上不存在此类形状(如 Collider2D.shapeCount 所示),则形状组将不会填充形状。如果存在形状,则在填充形状之前先清空该组。
每个 Collider2D 生成一个或多个 PhysicsShape2D,这些形状具有单个 PhysicsShapeType2D,如下所示
所有 Collider2D 形状顶点都存储在其所附加的 Rigidbody2D 的局部空间中,即它们的顶点相对于 Rigidbody2D 的姿态。因此,当 Rigidbody2D 平移或旋转时,附加的 Collider2D 的顶点不会改变。这就是为什么位置或旋转的更改应该始终仅通过 Rigidbody2D 进行,因为这是最有效的方法。检索形状时,形状顶点位于 Rigidbody2D 的局部空间中。 Rigidbody2D 的当前位置和旋转存储在 PhysicsShapeGroup2D.localToWorldMatrix 中,可用于将形状顶点变换到世界空间。如果 Collider2D 未附加到任何 Rigidbody2D(即它是静态的),则局部空间和世界空间相同,因此 PhysicsShapeGroup2D.localToWorldMatrix 设置为 Matrix4x4.identity。
注意:建议重用 PhysicsShapeGroup2D,因为这样只有在检索到的形状或顶点数大于 PhysicsShapeGroup2D 的现有容量时才会发生内存分配。因此,重用此对象可以最大限度地减少分配,最终减少到没有分配,因此垃圾回收器不会产生任何工作。
其他资源:Rigidbody2D.GetShapes。
physicsShapeGroup | 用于存储检索到的 PhysicsShape2D 的 PhysicsShapeGroup2D。 |
shapeIndex | 要检索的第一个形状的索引。此索引应在 0 到 Collider2D.shapeCount-1 的范围内。 |
shapeCount | 要检索的形状数量。 shapeIndex + shapeCount 必须小于或等于 Collider2D.shapeCount。 |
int 返回从 Collider2D 检索到的 PhysicsShape2D 的数量。在所有情况下,这都应该与 shapeCount
相同。
获取 Collider2D 使用的 PhysicsShape2D 的指定范围。