【Unity基础】重力系统 刚体组件 Rigidbody 移动.碰撞.触发检测
当在Unity中创建游戏或应用程序时,重力系统是一个非常重要的组成部分。它可以模拟物体受到地球引力的影响,并产生逼真的物理效果。在Unity中,我们可以使用刚体组件和重力向量来控制重力系统。
首先,在Unity中创建一个物体,并将其设为刚体。可以通过在场景中选择物体并在Inspector面板中勾选"Is Kinematic"选项来确保物体不受其他力的影响。
首先我们先了解一下重力组件Rigidbody

质量(Mass):对象的质量
阻力(Drag):模拟运动时受到的阻力
角阻力(AngularDrag):模拟旋转时受到的阻力
使用重力(UseGravity):是否使用重力
IsKinematic:是否是启用动力学,如果取消勾选物体就不会有重力下落了
插值(Interpolate):物体运动位置的插值器
None:没有插值
Interpolate:内插值。基于前一帧的Transform来平滑此次的Transform
Extrapolate:外插值。基于下一帧的Transform来平滑此次的Transform
碰撞检测(CollisionDetection):可以增加碰撞检测频率
Discrete: 离散碰撞检测,默认碰撞检测,物体高速移动可能会发生穿透
Continuous:连续碰撞检测,可以对移动的对象进行碰撞检测
Continuous Dynamic:连续动态检测,高速运动的物体可以可以使用,例如子弹
Continuous Speculative:推测检测,可以适用于Continuous和Continuous Dynamic检测对象,但消耗性能更低
Constraints:控制刚体运动的约束
冻结位置:勾选后可以使刚体在相应轴不能移动
冻结旋转:勾选后可以使刚体在相应轴不能旋转
碰撞检测:
碰撞检测条件
1.两个物体必须都包含碰撞体组件
2.至少有一个物体包含刚体组件
碰撞检测的方法
OnCollisionEnter( Collision collisionInfo ) 当两个对象开始碰撞的时候触发一次
OnCollisionExit( Collision collisionInfo ) 当两个对象碰撞结束的时候触发一次
OnCollisionStay( Collision collisionInfo ) 当两个对象持续碰撞的一直触发
触发检测:
触发检测条件
1.两个物体必须都包含碰撞体组件,并且其中一个对象是勾选了是触发器

2.至少有一个物体包含刚体组件
触发检测的方法
OnTriggerEnter( Collider other ) 当两个对象开始碰撞的时候触发一次
OnTriggerExit( Collider other ) 当两个对象碰撞结束的时候触发一次
OnTriggerStay( Collider other ) 当两个对象持续碰撞的一直触发
下面是一个简单的示例代码,展示了如何在Unity中移动和跳跃: