施力方法 AddForce

目前正跟随官网 Junior Programmer 课程学习。

前一段时间学习到的一些内容,将分别纪要。

1.施力

使用 AddForce(Vectror3 force, ForceMode mode) 方法。

必须对刚体 Rigidbody 使用,所以要提前获取施力对象的 刚体 Rigidbody 组件:

可使用方法 GetComponent<Rigidbody>() 实现;

相关示例代码如下:

1
2
3
4
5
6
7
8
9
10
public float jumpForce = 10;
private Rigidbody rig;

void Start()
{
//获取刚体组件
rig = GetComponent<Rigidbody>();
//施加向上的力
rig.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
}

其中:

Vector3.up 是指3维矢量中的 向上矢量,而在 Unity 中所谓的 向上,即 Y 轴正向方向;

ForceMode.Impulse 是指 向此刚体添加瞬时力冲击,考虑其质量。是比较常用的施力模式 ForceMode

其他施力模式,在 Unity API 文档中的描述如下:

Force 向此刚体添加连续力,使用其质量。
Acceleration 向此刚体添加连续加速度,忽略其质量。
Impulse 向此刚体添加瞬时力冲击,考虑其质量。
VelocityChange 向此刚体添加瞬时速度变化,忽略其质量。

引用自:

以上。