
能够使用范围检测函数在游戏中进行范围检测
【范围检测】
作用
在3D世界中检测在某一个范围内存在的物体

在游戏中,经常会存在这样的技能,比如陨石术,定点爆破等等,他们都是释放的一瞬间,判断某一个范围内是否有怪物或者玩家,然后让其受到伤害,检测一次后就结束。
如果我们用之前的碰撞检测,和射线检测都不太适合做这样的功能。因为碰撞检测主要是用来长时间存在的物体间进行判断的,比如检测子弹和其它物体是否有碰撞;而射线检测是线性的检测,并不是范围的。
所以这种瞬间的,范围的判断就必须要学习我们今天的范围检测了。
必要条件
碰撞体
【关键函数】
盒状范围检测

球形范围检测

胶囊范围检测

【关键参数】
返回值
Collider[]
如果范围内存在带有碰撞盒的对象
会将所有带碰撞体对象以数组形式返回
可以通过它得到物体的所有信息
盒状范围检测


center
立方体中心点(世界坐标系)
halfExtents
立方体三边大小
orientation
立方体角度(世界坐标系)
layerMask
层遮罩(同射线检测中)
球形范围参数


center
球中心点(世界坐标系)
radius
球半径
layerMask
层遮罩(同射线检测中)
胶囊范围参数


point0
点一
point1
点二
radius
半径
layerMask
层遮罩(同射线检测中)
注意
当使用范围检测函数时
不会在场景中真实出现一个碰撞体
【实例】
以盒装范围检测为例
球形和胶囊同理
只是使用的函数不同


cube1和cube2在范围内,cube3在范围外

点击鼠标后,在范围内的立方体名字被打印出来了
注意
如果没有一个碰撞体在范围内,返回的数组是长度为0的空数组
范围检测有三种
盒装
球形
胶囊
↓↓↓
↓↓↓
你要问我怎么用
直接Physics点函数
使用范围检测相对碰撞检测和射线检测要简单许多,我们只需要记下几个函数,以及参数的含义即可!要记住的是,他在实践中的运用主要是用来处理一些瞬间触发的范围碰撞检测的,所以它更多的被应用在技能系统中!