start | 世界空间中线的起点。 |
end | 世界空间中线的终点。 |
layerMask | 过滤器,仅检测特定图层上的碰撞器。 |
minDepth | 仅包含 Z 坐标(深度)大于或等于此值的物体。 |
maxDepth | 仅包含 Z 坐标(深度)小于或等于此值的物体。 |
RaycastHit2D 返回的投射结果。
在场景中针对碰撞器投射线段。
linecast 是世界空间中两点之间的一条假想线。可以检测和报告与这条线接触的任何物体。这与类似的 raycast 不同,因为射线投射使用起点和方向来指定线。
当线与场景中的碰撞器接触时,此函数将返回一个 RaycastHit2D 对象。layerMask 可用于选择性地仅检测特定图层上的对象(例如,这允许您仅将检测应用于敌人角色)。假定线的方向从起点延伸到终点。将仅报告该方向上遇到的第一个碰撞器。虽然 Z 轴与 2D 中的渲染或碰撞无关,但您可以使用 minDepth 和 maxDepth 参数根据其 Z 坐标过滤对象。
Linecast 可用于确定视线、枪击命中的目标以及游戏玩法中的许多其他用途。
请注意,此函数将为返回的 RaycastHit2D 对象分配内存。如果您需要频繁进行 linecast,则可以使用 LinecastNonAlloc 来避免此开销。
此外,这也会检测线起点处的碰撞器。在这种情况下,线从碰撞器内部开始,并且不与碰撞器表面相交。这意味着无法计算碰撞法线,在这种情况下,返回的碰撞法线设置为被测线的反向量。这很容易检测到,因为此类结果始终位于 RaycastHit2D 分数为零的位置。
其他资源:LayerMask 类、RaycastHit2D 类、LinecastAll、LinecastNonAlloc、DefaultRaycastLayers、IgnoreRaycastLayer、raycastsHitTriggers。
start | 世界空间中线的起点。 |
end | 世界空间中线的终点。 |
contactFilter | 用于以不同方式过滤结果的接触过滤器,例如按图层蒙版、Z 深度或法线角度过滤。 |
results | 用于接收结果的数组。数组的大小决定了可以返回的最大结果数。 |
int 返回放置在 results
数组中的结果数。
在场景中针对碰撞器投射线段,结果由 ContactFilter2D 过滤。
使用 contactFilter
参数的此函数的重载可以通过 ContactFilter2D 中的选项过滤返回的结果。
其他资源:ContactFilter2D 和 RaycastHit2D。
start | 世界空间中线的起点。 |
end | 世界空间中线的终点。 |
contactFilter | 用于以不同方式过滤结果的接触过滤器,例如按图层蒙版、Z 深度或法线角度过滤。 |
results | 用于接收结果的列表。 |
int 返回放置在 results
列表中的结果数。
在场景中针对碰撞器投射线段,结果由 ContactFilter2D 过滤。
整数返回值是写入 results
列表中的结果数。如果列表不包含足够元素来报告所有结果,则列表将调整大小。这可以防止在 results
列表不需要调整大小时为结果分配内存,并在频繁执行查询时提高垃圾回收性能。
结果也可以通过 contactFilter
过滤。
其他资源:ContactFilter2D 和 RaycastHit2D。