网站公告 | 全新unity3d 完整学习路线,最强课程配套、服务!详情点击
查看: 3753|回复: 6
收起左侧

[Unity3d] 请教怎么判断碰撞检测区域里没有东西

[复制链接]

[Unity3d] 请教怎么判断碰撞检测区域里没有东西[复制链接]

zhangliwei7758 发表于 2018-7-31 10:44:43 [显示全部楼层] 回帖奖励 |倒序浏览 |阅读模式 回复:  6 浏览:  3753
5泰斗币
如题,碰撞检测区域我可以通过OnTriggerEnter、OnTriggerStay以及OnTriggerExit获取物体的信息,那么如果我想知道碰撞检测区域里没有任何东西,或者里面的东西被destory之后,可以通过什么方法获取到检测区当前的空闲状态?求教啊!

+1
3751°C
6
  • aslia
  • zhangliwei7758
  • aslia
  • 小枫小枫小
  • axiaxi520
过: 他们
因分享而快乐,学习以自强!
aslia 发表于 2018-7-31 15:06:32 显示全部楼层
很简单做一个标记,例如,,你在检测区域放一个地板,如果检测到的物品是地板则代表空闲,如果有禁用地板的collider,或者里面的东西被destory之后把地板的collider加上
因分享而快乐,学习以自强!
zhangliwei7758
 楼主|
发表于 2018-8-1 14:12:42 显示全部楼层
aslia 发表于 2018-7-31 15:06
很简单做一个标记,例如,,你在检测区域放一个地板,如果检测到的物品是地板则代表空闲,如果有禁用地板的 ...

不行啊,这种方法我也考虑过,我这个检测区是一个动态的检测区域,范围和数量不定。
我里面物体可能会有销毁、瞬移或者短暂消失等行为(不限于),每一次检测需要记录检测区,同时行为触发的时候,再设置重置指定检测区域状态,太麻烦了。
因分享而快乐,学习以自强!
aslia 发表于 2018-8-2 09:26:10 显示全部楼层
你先简化问题,假如是一个固定大小的检测区域, 如何实现?
因分享而快乐,学习以自强!
小枫小枫小 发表于 2018-8-13 08:25:20 显示全部楼层
可以在检测区域内部建立一个表,存储在区域内存在的成员,当添加或删除某物体时,由该物体发送消息,让该表增删数据。
之后,只要检测该表就可以了。
因分享而快乐,学习以自强!
axiaxi520 发表于 2018-8-15 14:35:38 显示全部楼层
遍历物体,看看是否在碰撞范围内
因分享而快乐,学习以自强!
buluozhiri 发表于 2018-10-7 10:03:41 显示全部楼层
有两种方法:1、在碰撞检测区域上挂一个Rigidbody,选择IsKinematic,然后挂一个脚本,脚本中实现 void OnTriggerStay(Collider col){统计区域内对象};2、在需要检测的时候调用Physics.OverlapBox方法
因分享而快乐,学习以自强!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

VR/AR版块|Unity3d|Unreal4|新手报道|小黑屋|站点地图|沪ICP备14023207号-9|【泰斗社区】-专注互联网游戏和应用的开发者平台 ( 浙ICP 备 13006852号-15 )|网站地图

© 2001-2013 Comsenz Inc.  Powered by Discuz! X3.4

1
QQ