版本:Unity 6(6000.0)
语言英语
  • C#

Rigidbody2D.Cast

建议更改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读来自我们用户的每一条建议更改,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请在几分钟后重试。感谢您拨冗帮助我们改进 Unity 文档的质量。

关闭

取消

声明

public int Cast(Vector2 direction, List<RaycastHit2D> results, float distance = Mathf.Infinity);

参数

direction 表示以每种Collider2D形状进行投射的方向的向量。
results 用于接收结果的列表。
distance 投射碰撞器时的最大距离。

返回

int 返回放入results列表的结果数量。

说明

附加到Rigidbody2D的所有Collider2D形状都会从每个碰撞器位置开始,投射到场景中,并忽略附加到同一Rigidbody2D的碰撞器。

此函数会获取附加到Rigidbody2D的所有Collider2D形状,并从碰撞器位置以指定的direction方向投射到场景中,获取可选的distance,并将结果返回到提供的results列表中。

整型返回值是写入results列表的结果数量。如果结果列表不包含报告所有结果的元素,则会调整其大小。当无需调整结果列表大小时,这会防止为结果分配内存,并在频繁执行查询时提升垃圾回收性能。

此外,此函数还会检测到与碰撞器起始位置重叠的其他碰撞器。在这种情况下,投射形状由碰撞器内部开始,可能不会与碰撞器表面相交。这意味着无法计算碰撞法线,此时返回的碰撞法线设置为待测试direction向量的反向向量。


声明

public int Cast(Vector2 direction, ContactFilter2D contactFilter, List<RaycastHit2D> results, float distance = Mathf.Infinity);

参数

direction 表示以每种Collider2D形状进行投射的方向的向量。
contactFilter 由接触筛选器定义的筛选结果。
results 用于接收结果的列表。
distance 投射碰撞器时的最大距离。

返回

int 返回放入results列表的结果数量。

说明

附加到Rigidbody2D的所有Collider2D形状都会从每个碰撞器位置开始,投射到场景中,并忽略附加到同一Rigidbody2D的碰撞器。

此函数会获取附加到Rigidbody2D的所有Collider2D形状,并从碰撞器位置以指定的direction方向投射到场景中,获取可选的distance,并将结果返回到提供的results列表中。

整型返回值是写入results列表的结果数量。如果结果列表不包含报告所有结果的元素,则会调整其大小。当无需调整结果列表大小时,这会防止为结果分配内存,并在频繁执行查询时提升垃圾回收性能。

contactFilter 参数可以通过 ContactFilter2D 中的选项筛选返回结果。

此外,此函数还会检测到与碰撞器起始位置重叠的其他碰撞器。在这种情况下,投射形状由碰撞器内部开始,可能不会与碰撞器表面相交。这意味着无法计算碰撞法线,此时返回的碰撞法线设置为待测试direction向量的反向向量。


声明

public int Cast(Vector2 direction, RaycastHit2D[] results, float distance = Mathf.Infinity);

参数

direction 表示以每种Collider2D形状进行投射的方向的向量。
results 用于接收结果的数组。
distance 投射碰撞器时的最大距离。

返回

int 返回放入 results 数组中的结果数量。

说明

附加到Rigidbody2D的所有Collider2D形状都会从每个碰撞器位置开始,投射到场景中,并忽略附加到同一Rigidbody2D的碰撞器。

此函数将获取附加到 Rigidbody2D 中的所有 Collider2D 形状,并从指定 direction 中的 Collider 位置开始将它们投射到场景中,用于可选 distance,并将结果返回到已提供的 results 数组中。

整型返回值是写入 results 数组中的结果数量。如果结果数组不包含报告所有结果所需的元素数量,它将不会调整大小。这样做的意义在于,不会为结果分配内存,因此,当频繁执行 Cast 时,垃圾回收性能得到提升。

此外,此函数还会检测到与碰撞器起始位置重叠的其他碰撞器。在这种情况下,投射形状由碰撞器内部开始,可能不会与碰撞器表面相交。这意味着无法计算碰撞法线,此时返回的碰撞法线设置为待测试direction向量的反向向量。


声明

public int Cast(Vector2 direction, ContactFilter2D contactFilter, RaycastHit2D[] results, float distance = Mathf.Infinity);

参数

direction 表示以每种Collider2D形状进行投射的方向的向量。
contactFilter 由接触筛选器定义的筛选结果。
results 用于接收结果的数组。
distance 投射碰撞器时的最大距离。

返回

int 返回放入 results 数组中的结果数量。

说明

附加到Rigidbody2D的所有Collider2D形状都会从每个碰撞器位置开始,投射到场景中,并忽略附加到同一Rigidbody2D的碰撞器。

此函数将获取附加到 Rigidbody2D 中的所有 Collider2D 形状,并从指定 direction 中的 Collider 位置开始将它们投射到场景中,用于可选 distance,并将结果返回到已提供的 results 数组中。

整型返回值是写入 results 数组中的结果数量。如果结果数组不包含报告所有结果所需的元素数量,它将不会调整大小。这样做的意义在于,不会为结果分配内存,因此,当频繁执行 Cast 时,垃圾回收性能得到提升。

contactFilter 参数可以通过 ContactFilter2D 中的选项筛选返回结果。

此外,此函数还会检测到与碰撞器起始位置重叠的其他碰撞器。在这种情况下,投射形状由碰撞器内部开始,可能不会与碰撞器表面相交。这意味着无法计算碰撞法线,此时返回的碰撞法线设置为待测试direction向量的反向向量。


声明

public int Cast(Vector2 position, float angle, Vector2 direction, List<RaycastHit2D> results, float distance = Mathf.Infinity);

参数

position 从该位置开始投射 Rigidbody 的位置。
angle Rigidbody 的旋转。
direction 表示以每种Collider2D形状进行投射的方向的向量。
results 用于接收结果的列表。
distance 投射碰撞器时的最大距离。

返回

int 返回放入results列表的结果数量。

说明

Rigidbody2D 从指定位置和旋转开始投射到场景中。附加到 Rigidbody2D 的所有 Collider2D 形状都会随着它一起投射,同时忽略附加到相同 Rigidbody2D 的 Collider。

此函数与 Rigidbody2D.Cast 不同,它允许您投射 Rigidbody2D 及其所有附加 Collider2D 来浏览场景,但它也允许指定 Rigidbody2D 的起始 positionangle

整型返回值是写入results列表的结果数量。如果结果列表不包含报告所有结果的元素,则会调整其大小。当无需调整结果列表大小时,这会防止为结果分配内存,并在频繁执行查询时提升垃圾回收性能。

注意:此外,它还将检测与开始位置重叠的其他碰撞器。在这种情况下,投射形状将从另一个碰撞器内部开始,并且可能不会与碰撞器表面相交。这意味着无法计算碰撞法线,在这种情况下,返回的碰撞法线设置为所测试的direction向量的逆。

其他资源:Rigidbody2D.CastContactFilter2D


声明

public int Cast(Vector2 position, float angle, Vector2 direction, ContactFilter2D contactFilter, List<RaycastHit2D> results, float distance = Mathf.Infinity);

参数

position 从该位置开始投射 Rigidbody 的位置。
angle Rigidbody 的旋转。
direction 表示以每种Collider2D形状进行投射的方向的向量。
contactFilter 由接触筛选器定义的筛选结果。
results 用于接收结果的列表。
distance 投射碰撞器时的最大距离。

返回

int 返回放入results列表的结果数量。

说明

Rigidbody2D 从指定位置和旋转开始投射到场景中。附加到 Rigidbody2D 的所有 Collider2D 形状都会随着它一起投射,同时忽略附加到相同 Rigidbody2D 的 Collider。

此函数与 Rigidbody2D.Cast 不同,它允许您投射 Rigidbody2D 及其所有附加 Collider2D 来浏览场景,但它也允许指定 Rigidbody2D 的起始 positionangle

此函数还使用指定的contactFilter,因此不会使用附加到此Rigidbody2D的每个Collider2D的特定LayerMask来检测接触。如果不需要这种情况,则应使用不带ContactFilter2D参数的CastFrom重载。

整型返回值是写入results列表的结果数量。如果结果列表不包含报告所有结果的元素,则会调整其大小。当无需调整结果列表大小时,这会防止为结果分配内存,并在频繁执行查询时提升垃圾回收性能。

注意:此外,它还将检测与开始位置重叠的其他碰撞器。在这种情况下,投射形状将从另一个碰撞器内部开始,并且可能不会与碰撞器表面相交。这意味着无法计算碰撞法线,在这种情况下,返回的碰撞法线设置为所测试的direction向量的逆。

其他资源:Rigidbody2D.CastContactFilter2D