start | 线在世界空间中的起点。 |
end | 线在世界空间中的终点。 |
layerMask | 过滤器,用于仅在特定层上检测碰撞体。 |
minDepth | 仅包括 Z 坐标(深度)大于或等于该值的对象。 |
maxDepth | 仅包括 Z 坐标(深度)小于或等于该值的对象。 |
RaycastHit2D[] 返回的投射数量。
向场景中的碰撞体投射线条。
linecast 是世界空间中两点之间的一段假想线。在该过程中,可以检测并报告与光束接触的任何对象。
该函数类似于 Linecast 函数,不同之处在于其报告与线条接触的所有碰撞体。假设线条从其起点延伸到终点;在返回的数组中,碰撞体按照距离线条起点的距离顺序放置。
对于确定视线、炮火击中的目标以及游戏中的许多其他目的来说,线条投射很有用。
注意,该函数将为返回的 RaycastHit2D 数组分配内存。如果需要频繁进行线条投射,可以使用 LinecastNonAlloc 来避免这种开销。
此外,这还将检测位于线条起点的碰撞体。在这种情况下,线条从碰撞体内部开始,并且不与碰撞体表面交叠。这意味着无法计算碰撞法线,在这种情况下,返回的碰撞法线设置为正在测试的线条向量的倒数。这可轻松检测到,因为此类结果始终是 RaycastHit2D 分数为零。
另请参阅:LayerMask 类、RaycastHit2D 类、Linecast、LinecastNonAlloc、DefaultRaycastLayers、IgnoreRaycastLayer、raycastsHitTriggers。