文章来源:
【唐老狮】Unity——物理系统(范围检测) - 哔哩哔哩 (bilibili.com)
作用:动态 短时(1次) 检测某一范围内是否发生碰撞
应用:技能释放等
必要条件:碰撞体
Physics 类 Overlap** 函数
collider[] colliderInfo1 = Physics.OverlapBox(Vector3 center,Vector3 halfExtents,Quaternion orientation,int layerMask);
collider[] colliderInfo2 = Physics.OverlapSphere(Vector3 position,float radius,int layerMask);
collider[] colliderInfo3 = Physics.OverlapCapsule(Vector3 point0,Vector3 point1,float radius,int layerMask);
盒型范围
collider[] OverlapBox(Vector3 center,Vector3 halfExtents,Quaternion orientation,int layerMask)
//注意重载
关键参数:collider[]
将被碰撞的对象以数组形式返回,未发生碰撞,返回长度为0的数组
center:立方体中心点(世界坐标系)
halfExtents:立方体三边大小
orientation:立方体角度(世界坐标系)
layerMask:层遮罩
球形范围
collider[] OverlapSphere(Vector3 position,float radius,int layerMask)
//注意重载
关键参数:collider[]
将被碰撞的对象以数组形式返回,未发生碰撞,返回长度为0的数组
center:球体中心点(世界坐标系)
radius:球半径
layerMask:层遮罩
胶囊范围
collider[] OverlapCapsule(Vector3 point0,Vector3 point1,float radius,int layerMask)
//注意重载
关键参数:collider[]
将被碰撞的对象以数组形式返回,未发生碰撞,返回长度为0的数组
point0:点1
point1:点 2
radius:半径
layerMask:层遮罩