unity中Rigidbody添加力的几种方式

时间:2024-03-06 16:02:39

枚举ForceMode 的值:

 

 

Force                  添加一个可持续力到刚体,使用它的质量。

Acceleration        添加一个可持续加速度到刚体,忽略它的质量。

Impulse               添加一个瞬间冲击力到刚体,使用它的质量。

VelocityChange   添加一个瞬间速度变化给刚体,忽略它的质量。

 

Rigidbody.AddForce

添加一个力到刚体

Rigidbody.AddRelativeForce

添加一个力到刚体,相对于刚体自身的坐标系统。

Rigidbody.AddTorque

在刚体上增加一个力矩(扭矩)。

Rigidbody.AddRelativeTorque   //添加相对力矩

添加一个力矩到刚体,相对于刚体自身的坐标系统。

Rigidbody.AddForceAtPosition  在物体表面位置上(施加)添加力

在position位置应用force力。作为结果这个将在这个物体上应用一个力矩和力。为了效果的真实性,position的位置应在刚体的表面

Rigidbody. AddExplosionForce 

应用一个力到刚体来模拟爆炸效果。爆炸力将随着到刚体的距离线形衰减。

explosionForce 爆破力

explosionPosition 爆炸位置

explosionRadius 爆破半径,为0时表示无穷大

upwardsModifier 可以理解为爆炸产生的向上冲击波的衰减值。值越大,威力越小。

 

获取速度

Rigidbody.GetRelativePointVelocity

获取刚体上的点相对本地坐标系的速度。获取的速度有考虑刚体的角速度。

Rigidbody.GetPointVelocity 

获取刚体上的点相对世界坐标系的速度。获取的速度有考虑刚体的角速度。

 

休眠

Rigidbody.Sleep();

强制一个刚体休眠至少一帧。刚体休眠有利于性能优化

Rigidbody.IsSleeping();

判断刚体是不是在休眠

Rigidbody.WakeUp();

强制唤醒一个刚体

Rigidbody.velocity=

给刚体赋值指定的速度,一般较适用于需要对使用刚体的物体进行细微的速度控制.

Rigidbody.MovePosition();

让刚体移动至指定位置

 

(整理一下,方便记)

如果存在哪里不对的地方,多多指出,谢谢大家包涵  ! ! !