direction | 表示形状投射方向的向量。 |
results | 用于接收结果的数组。 |
distance | 将形状投射的最大距离。 |
ignoreSiblingColliders | 是否应忽略附加到同一 Rigidbody2D 的碰撞体(称为同级碰撞体)? |
int 返回的结果数量。
将碰撞体形状投射到从该碰撞体位置开始的场景中,从而忽略该碰撞体本身。
此函数接受碰撞体形状,并将其投射到从指定 direction
上的碰撞体位置开始的可选 distance
的场景中,并在提供的 results
数组中返回结果。该整数返回值为写入到 results
数组中的结果数。如果结果数组中没有足够的元素来报告所有这些结果,则不会调整数组的大小。其意义在于不为这些结果分配内存,因此在经常进行投射时会提高垃圾收集性能。
此外,这还将检测位于碰撞体开始位置的其他碰撞体(如果它们重叠)。在这种情况下,投射形状将从碰撞体内部开始,可能不与碰撞体表面交叠。这意味着无法计算碰撞法线,在这种情况下,返回的碰撞法线设置为正在测试的 direction
向量的倒数。
注意:使用 Collider2D.Cast() 需要使用 Rigidbody2D。如果
未声明 Rigidbody2D,则 Cast() 不起作用。但 Rigidbody2D
可以是静态的,也可以附加到 Collider2D。这将使 Cast() 正常
运行。此外,如果 Collider2D 对象没有 Rigidbody2D 对象,
则它可与同时具有 Collider2D 和 Rigidbody2D
对象的对象碰撞。
direction | 表示形状投射方向的向量。 |
contactFilter | 筛选由接触筛选器定义的结果。 |
results | 用于接收结果的数组。 |
distance | 将形状投射的最大距离。 |
ignoreSiblingColliders | 是否应忽略附加到同一 Rigidbody2D 的碰撞体(称为同级碰撞体)? |
int 返回的结果数量。
将碰撞体形状投射到从该碰撞体位置开始的场景中,从而忽略该碰撞体本身。
此函数接受碰撞体形状,并将其投射到从指定 direction
上的碰撞体位置开始的可选 distance
的场景中,并在提供的 results
数组中返回结果。该整数返回值为写入到 results
数组中的结果数。如果结果数组中没有足够的元素来报告所有这些结果,则不会调整数组的大小。其意义在于不为这些结果分配内存,因此在经常进行投射时会提高垃圾收集性能。contactFilter
参数可按 ContactFilter2D 中的选项筛选返回的结果。
此外,这还将检测位于碰撞体开始位置的其他碰撞体(如果它们重叠)。在这种情况下,投射形状将从碰撞体内部开始,可能不与碰撞体表面交叠。这意味着无法计算碰撞法线,在这种情况下,返回的碰撞法线设置为正在测试的 direction
向量的倒数。