找回密码
 立即注册
查看: 367|回复: 0

【唐老狮】Unity——物理系统(范围检测)

[复制链接]
发表于 2022-3-6 13:54 | 显示全部楼层 |阅读模式
【学习目标】

能够使用范围检测函数在游戏中进行范围检测
<hr/>【范围检测】


  • 作用
    在3D世界中检测在某一个范围内存在的物体


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


  • 必要条件
    碰撞体
<hr/>【关键函数】


盒状范围检测


球形范围检测


胶囊范围检测


<hr/>【关键参数】

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

盒状范围检测




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

球形范围参数




center——球中心点(世界坐标系)
radius——球半径
layerMask——层遮罩(同射线检测中)

胶囊范围参数




point0——点一
point1——点二
radius——半径
layerMask——层遮罩(同射线检测中)

注意
当使用范围检测函数时,不会在场景中真实出现一个碰撞体
<hr/>【实例】

以盒装范围检测为例,球形和胶囊同理,只是使用的函数不同





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



点击鼠标后,在范围内的立方体名字被打印出来了

注意
如果没有一个碰撞体在范围内,返回的数组是长度为0的空数组
<hr/>【总结】

范围检测有三种

  • 盒装
  • 球形
  • 胶囊
↓↓↓
↓↓↓
你要问我怎么用
直接Physics点函数

使用范围检测相对碰撞检测和射线检测要简单许多,我们只需要记下几个函数,以及参数的含义即可!要记住的是,他在实践中的运用主要是用来处理一些瞬间触发的范围碰撞检测的,所以它更多的被应用在技能系统中!
<hr/>关注唐老狮获取更多干货内容

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-22 17:38 , Processed in 0.090300 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表