位置: 编程技术 - 正文

碰撞检测 BoxCollider 的特殊实现(什么是碰撞检测)

编辑:rootadmin

推荐整理分享碰撞检测 BoxCollider 的特殊实现(什么是碰撞检测),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:碰撞检测算法,碰撞检测的意义,碰撞检测算法,碰撞检测原理,碰撞检测英文,碰撞检测英文,碰撞检测算法,碰撞检测算法,内容如对您有帮助,希望把文章链接给更多的朋友!

当做触发器的Collider检测,可以通过

private void OnTriggerStay(Collider collider);

private void OnTriggerEnter(Collider collider);

private void OnTriggerExit(Collider collider);

来实现,当有物体与当前触发器碰撞时候自动调用OnTriggerEnter(),当物体在触发器内容时候自动调用OnTriggerStay(),当物体离开触发器时候自动调用OnTriggerExit(),

但是当处于触发器内部的物体消失(被消灭,被杀死 Deactive)时候,这个物体就不会触发OnTriggerExit,有兴趣的同学可以自己测试一下。

所以当我们需要实现一个这样的效果:

碰撞检测 BoxCollider 的特殊实现(什么是碰撞检测)

当有目标物体进入触发器内部的时候就发出一个进入的事件,之后当触发器内部没有物体的的时候再发出一个退出的事件。

注意这里触发器内部没有物体是在先有进入物体的条件下,所以当使用OnTriggerEnter 和OnTriggerExit 来发出事件时候就不正确了,因为当一个物体进入触发器 发出了进入的事件,但是它被Deactive了,此时触发器内部没有物体,但是却不会发出退出事件。

我的实现方法是使用一个记时装置,使用协同程序,当触发进入事件

之后打开记时装置,

这个程序的实现为:

在OnTriggerStay里检测到物体停留就为 _chackNum赋&#;,当OntriggerStay 不在运行时候,计时器就会不断削减 _chackNum 最后小于0调用退出方法。

对了这个方法说一下,如果在触发器内部有物体的话,这个方法会每一帧被调用一次。

如此实现,可以保证在一个进入和退出过程中只有一个计时程序在运行,在触发器中没有物体后的1秒钟内自动发出退出的消息。

unity学习之在续NGUI unity学习,希望我的博客能给喜欢unity的朋友带来帮助今天继昨天讲的,接着学习NGUI,让我们可以做出一个简单的登陆注册界面来。实现打字机效果创建

unity碰撞器与触发器 我们今天学习了unity之碰撞检测和出发检测。两者的区别在在添加碰撞器时,碰撞组件属性下面的trigger按钮要勾选上,就是碰撞器;相反在Trigger按钮不

Unity中date相关问题 今天遇到了从服务器获取unix时间戳,将其转换为时间并显示的需求。Unity中可以使用C#中有关的date函数来处理这个问题。首先UNIX时间戳的定义如下:Unix

本文链接地址:https://www.jiuchutong.com/biancheng/375769.html 转载请保留说明!

上一篇:【译】协程的使用(协程有什么用)

下一篇:unity学习之在续NGUI(unity intercom)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络