【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 碰到(?)

触发同理

猜你喜欢

转载自blog.csdn.net/weixin_42818410/article/details/123281832