Unity3d碰撞体刚体OnTriggerEnter和OnCollisionEnter用法与区别
Posted 果子梨果果
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3d碰撞体刚体OnTriggerEnter和OnCollisionEnter用法与区别相关的知识,希望对你有一定的参考价值。
今天学习遇到了一些关于碰撞体和刚体还有相关事件的问题
刚体Rigidbody:是赋予物体力的的作用效果的基础,包括重力,拉力(阻力也是拉力的一种),角拉力(角阻力同样)物体悬空时会掉落,被其他东西碰到时(假设有碰撞体)会朝着受力方向运动或产生运动趋势。
碰撞体:则让物体之间能够产生接触碰撞,产生相互作用。如果不需要与其他对象有交互,可以选择运动学刚体(kinematic)→比如切水果
触发体可以用来做自动门的感应区域,水域等效果。
碰撞体的物理材质:
Physic Material
Dynamic Friction(动态摩擦力,即物体开始运动之后的摩擦力)
Static Friction(静态摩擦力,物体静止时受到超过该值的力才会开始运动)
Bounciness 弹力(1为弹到原来高度)
Friction Combine 组合摩擦力(两个接触面的摩擦力是取何值(平均值?最小值?))
Bounciness 组合弹力(同上)
OnCollisionEnter(碰撞事件) | OnTriggerEnter (触发事件) |
---|---|
碰撞双方必须是碰撞体(Conllision) | 碰撞双方必须是碰撞体(Conllision) |
碰撞的主动方必须是刚体(Rigidbody) | 碰撞双方其中一个必须是刚体(Rigidbody) |
碰撞体不能勾选IsTrigger | 碰撞双方其中一个碰撞体必须勾选IsTrigger选项 |
刚体不能勾选IsKinematic | 刚体的IsKinematic选项可以勾选也可以不勾选 |
IsKinematic确定刚体是否接受运动学模拟(重力、速度、阻尼等)
碰撞时会产生碰撞事件:
OnCollisionEnter | 开始碰到 |
---|---|
OnCollisionExit | 停止碰撞 |
OnCollisionStay | 碰到(?) |
触发同理
unity同一个gameobject上可以同时存在碰撞体和触发器吗
1.要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起,除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中,没有碰撞体的刚体会彼此相互穿过。2.物体发生碰撞的必要条件:
两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体。
在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。
3.碰撞器:一群组件,它包含了很多种类,比如:Box Collider(盒碰撞体),Mesh Collider(网格碰撞体)等,这些碰撞器应用的场合不同,但都必须加到GameObjecet身上。
4.触发器,只需要在检视面板中的碰撞器组件中勾选IsTrigger属性选择框。 参考技术A 可以。OnCollisionEnter碰撞,OnTriggerEnter触发,可以分开处理。但是两个触发器,只会执行同一个方法。
以上是关于Unity3d碰撞体刚体OnTriggerEnter和OnCollisionEnter用法与区别的主要内容,如果未能解决你的问题,请参考以下文章
转载 unity3d 理解刚体(Rigidbody)和碰撞体(Collider)以及触发器(Is Trigger)