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

Physics2D.LinecastAll

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交的内容,但我们确实会阅读用户提出的每个建议的更改,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static RaycastHit2D[] LinecastAll(Vector2 start, Vector2 end, int layerMask = DefaultRaycastLayers, float minDepth = -Mathf.Infinity, float maxDepth = Mathf.Infinity);

参数

start 世界空间中线的起点。
end 世界空间中线的终点。
layerMask 仅检测特定层上的碰撞器的过滤器。
minDepth 仅包含 Z 坐标(深度)大于或等于此值的物体。
maxDepth 仅包含 Z 坐标(深度)小于或等于此值的物体。

返回值

RaycastHit2D[] 返回的碰撞结果。

描述

在场景中对碰撞器进行射线检测。

线检测 是世界空间中两点之间的一条假想线。可以检测到并报告与光束接触的任何物体。

此函数类似于 Linecast 函数,但会报告与线接触的所有碰撞器。假定该线从起点运行到终点;碰撞器将按与线起点距离的顺序放置在返回的数组中。

线检测对于确定视线、被枪击命中的目标以及游戏玩法中的许多其他用途非常有用。

注意:此函数为返回的 RaycastHit2D 数组分配内存。如果您需要频繁进行线检测,请使用 Linecast 来避免这种开销。

此外,这也会检测线起点处的碰撞器(s)。在这种情况下,该线从碰撞器内部开始,并且没有与碰撞器表面相交。这意味着无法计算碰撞法线,在这种情况下,返回的碰撞法线将设置为被测试线向量的反向。这很容易检测到,因为这种结果始终在 RaycastHit2D 分数为零的情况下出现。

其他资源: LayerMask 类, RaycastHit2D 类, LinecastDefaultRaycastLayersIgnoreRaycastLayerraycastsHitTriggers