origin | 射线在 2D 空间中的起点。 |
direction | 表示射线方向的矢量。 |
distance | 射线的最大投射距离。 |
layerMask | 过滤器,用于仅在特定层上检测碰撞体。 |
minDepth | 仅包括 Z 坐标(深度)大于或等于该值的对象。 |
maxDepth | 仅包括 Z 坐标(深度)小于或等于该值的对象。 |
RaycastHit2D[] 返回的投射数量。
向场景中的碰撞体投射射线,返回与射线接触的所有碰撞体。
从概念上说,射线投射 类似于从空间中的某个点朝特定方向发射一条光束。在该过程中,可以检测并报告与光束接触的任何对象。
该函数类似于 Raycast 函数,但它并非仅检测命中的第一个碰撞体,而是返回一个射线行进路径上接触到的所有碰撞体的数组。数组中的碰撞体按到原点的距离顺序排序。layerMask 可用于仅在特定层上有选择地检测对象(例如,这让您能够仅将检测应用于敌人角色)。
对于确定视线、炮火击中的目标以及游戏中的许多其他目的来说,射线投射很有用。
此外,这还将检测位于射线起点的碰撞体。在这种情况下,射线从碰撞体内部开始,并且不与碰撞体表面交叠。这意味着无法计算碰撞法线,在这种情况下,返回的碰撞法线设置为正在测试的射线向量的倒数。这可轻松检测到,因为此类结果始终是 RaycastHit2D 分数为零。
另请参阅:LayerMask 类、RaycastHit2D 类、Raycast、Linecast、DefaultRaycastLayers、IgnoreRaycastLayer、raycastsHitTriggers。