Unity碰撞事件与触发事件的监测方法介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity碰撞事件与触发事件的监测方法介绍相关的知识,希望对你有一定的参考价值。

参考技术A 碰撞事件简单来说就一个物体与另外的一个物体一旦相互接触就产生了碰撞,
而此时会触发碰撞事件。当然产生碰撞事件的前提是两个相撞的物体都必须拥有Collider组件。

其实本质上来说uinty中物体的碰撞就是Collider组件的碰撞。

我们从图中可以看到里面有一个Is Trigger选项,我们看到黑箭头那里此时我们选择不勾选,具体为什么我下面讲到触发事件的时候会给大家详细解答。

这个方法代表当我们两个物体一旦接触,就会触发这个事件,但该方法只会调用一次。

当个物体碰撞一直来进行着,就会触发这个事件,该方法会一直调用。直到两个物体没有碰撞后才会停止

当两个物体碰撞结束后会调用该方法,该方法也只会调用一次

Collision是一个类,我们可以理解它是为传递碰撞信息的。
[参数名字].gameObject.name物体表示与该物体碰撞时,碰撞物体的名字。

这是我们就需要在Collider组件面板中,找到is Trigger,把它勾选中,这是该物体就会变成触发器,但我们其他的物体碰撞到该物体就会直接穿透该物体。

可以把一个正在移动的刚体物体假设为物体1,把一个有触发器的物体假设为物体2。
当由物体1被刚体控制移动到物体2的触发器范围时,这时就是触发事件。
触发事件主要用于不用直接与物体接触,我们就能触发某一事件,类似我们实际生活中的自动门,当我们接近自动门并且还没碰到它,它就会自动开门,大家可以这么理解触发事件。

与碰撞事件类似,它是物体进入触发器范围时候调用,只会触发一次。

也与碰撞事件类似,它是物体进入触发器范围内调用,只要物体一直在触发器范围,它就会持续的调用。

它是当物体离开触发器时会调用,只会触发一次。

Collision是一个类,我们可以理解它是为传递触发信息的。
[参数名字].gameObject.name物体表示与进入触发器时,触发物体的名字。

Unity 碰撞检测与触发检测

参考技术A 在Unity里面,游戏物体的碰撞我们可以通过刚体组件(Rigidbody)和碰撞器组件(Collider)来进行检测

发生碰撞的条件:主动方必须有Rigidbody,发生碰撞的两个游戏对象必须有Collider,被动方对于RigidBody可又不可无,参数是表示被动方 

OnCollisionEnter( Collision collisionInfo ) 当进入碰撞器

OnCollisionExit( Collision collisionInfo ) 当退出碰撞器

OnCollisionStay( Collision collisionInfo ) 当逗留碰撞器

接触检测

发生触发的条件:发生碰撞的物体两者其中之一有Rigidbody即可,发生碰撞的两个游戏对象必须有Collider,其中一方勾选IsTrigger即可,参数是表示被动方 

OnTriggerEnter( Collider other )当进入触发器

OnTriggerExit( Collider other )当退出触发器

OnTriggerStay( Collider other )当逗留触发器

以上是关于Unity碰撞事件与触发事件的监测方法介绍的主要内容,如果未能解决你的问题,请参考以下文章

蓝鸥Unity开发基础三课时16 碰撞和触发事件

unity学习笔记(碰撞器与触发器)

Unity:尝试调用事件时出错

unity中为啥我控制一个character controller物体,走向有capsule collider的物体,无法触发碰撞事件

unity-动画中加入触发事件

unity 手指旋转角色的功能