start | 线在世界空间中的起点。 |
end | 线在世界空间中的终点。 |
layerMask | 用于仅在特定层上检测碰撞体的过滤器。 |
contactFilter | 接触筛选器,用于以不同方式筛选结果,例如按层遮罩、Z 深度或法线角度。 |
RaycastHit2D 返回的投射数量。
向 PhysicsScene2D 中的碰撞体投射线段,仅返回第一个交点。
linecast 是世界空间中两点之间的一段假想线。在该过程中,可以检测并报告与该线接触的任何 Collider2D。它与 raycast 的不同之处在于,射线投射使用原点、方向和距离指定线条。对于确定视线、炮火击中的目标以及游戏中的许多其他目的来说,线条投射很有用。
当线与场景中的 Collider2D 接触时,该函数返回一个 RaycastHit2D 对象。假设线的方向是从起点延伸到终点。仅报告在该方向上遇到的第一个碰撞体。
layerMask 可用于仅在特定层上有选择地检测对象(例如,这让您能够仅将检测应用于敌人角色)。使用 contactFilter
的此方法重载可以按 ContactFilter2D 中提供的选项筛选结果。
此外,这还将检测位于射线起点的碰撞体。在这种情况下,射线从碰撞体内部开始,并且不与碰撞体表面交叠。这意味着无法计算碰撞法线,在这种情况下,返回的碰撞法线设置为正在测试的射线向量的倒数。这可轻松检测到,因为此类结果始终是 RaycastHit2D 分数为零。
另请参阅:PhysicsScene2D、RaycastHit2D、LayerMask、Physics2D.DefaultRaycastLayers、Physics2D.IgnoreRaycastLayer、Physics2D.queriesHitTriggers。
start | 线在世界空间中的起点。 |
end | 线在世界空间中的终点。 |
results | 用于接收结果的数组。该数组的大小决定可返回的结果的最大数量。 |
layerMask | 用于仅在特定层上检测碰撞体的过滤器。 |
contactFilter | 接触筛选器,用于以不同方式筛选结果,例如按层遮罩、Z 深度或法线角度。 |
int
返回放置在 results
数组中的结果数。
向 PhysicsScene2D 中的碰撞体投射线段。
linecast 是世界空间中两点之间的一段假想线。在该过程中,可以检测并报告与该线接触的任何 Collider2D。它与 raycast 的不同之处在于,射线投射使用原点、方向和距离指定线条。对于确定视线、炮火击中的目标以及游戏中的许多其他目的来说,线条投射很有用。
此函数返回与线段相交的任何 Collider2D,其结果会返回到提供的数组中。整数返回值为与该线条交叠的对象数(可能为零),但如果结果数组中没有足够的元素来报告所有这些结果,则不会调整该数组的大小。其意义在于不为这些结果分配内存,因此会提高垃圾收集性能。请注意,如果传递空数组,则始终会得到零结果。
layerMask 可用于仅在特定层上有选择地检测对象(例如,这让您能够仅将检测应用于敌人角色)。使用 contactFilter
的此方法重载可以按 ContactFilter2D 中提供的选项筛选结果。
此外,这还将检测位于射线起点的碰撞体。在这种情况下,射线从碰撞体内部开始,并且不与碰撞体表面交叠。这意味着无法计算碰撞法线,在这种情况下,返回的碰撞法线设置为正在测试的射线向量的倒数。这可轻松检测到,因为此类结果始终是 RaycastHit2D 分数为零。
所有结果按距离升序排序。
另请参阅:PhysicsScene2D、RaycastHit2D、LayerMask、Physics2D.DefaultRaycastLayers、Physics2D.IgnoreRaycastLayer、Physics2D.queriesHitTriggers。