Unity API之Physics2D.Raycast

描述

​ 射线可以用于角色的环境检测,使用射线检测,首先要给被检测的物体挂上Collider。

​ 从概念上说,射线投射类似于从空间的某个点朝特定方向发射一条光束,在该过程中,可以检测并报告与光束接触的任何对象。

image-20220124204957670

参数解释

  1. origin:射线投射的原点
  2. direction:射线投射的方向
  3. distance:射线的最大长度
  4. layerMask:射线只会投射到layerMask层的碰撞体
  5. contactFilter:接触筛选器,用于不同方式筛选结果,例如按照遮罩层、Z轴深度或者法线角度
  6. minDepth:仅包括Z轴坐标大于等于该值的对象
  7. maxDepth:仅包括Z轴坐标小于等于该值的对象
  8. result:用于接收结果的数组。该数组的大小决定可返回的结果的最大数量

返回值

​ 函数会返回一个RaycastHit2D对象,该对象引用了射线命中的碰撞体,如果射线未命中任何对象,则结果的属性将为NULL。

​ 函数也可以返回一个bool型的值,如果射线碰撞到了物体,则返回true,否则返回false。

​ 如果在参数中传入了result,则会返回一个int类型的值,该值表示了放置在result中的结果数量。

layerMask的写法

​ 可以使用1 << LayerMask.NameToLayer("Ground")来让Ground图层可以被检测到