force | 要应用的力向量。 |
mode | 要应用的力的类型。 |
将力应用于 ArticulationBody。
请注意,力会在模拟帧的持续时间内累积。它仅在模拟步骤期间物理应用于关节体,在调用脚本的 FixedUpdate 之后。指定 ForceMode mode
允许将力的类型更改为加速度、冲量或速度变化。
您只能将力应用于活动的 ArticulationBody。如果 GameObject 不活动,则 AddForce 不会产生任何效果。此外,ArticulationBody 必须是可移动的(不能是不可移动的)。
ForceMode.Force 和 ForceMode.Acceleration 模式修改每秒线性速度累加器,而 ForceMode.Impulse 和 ForceMode.VelocityChange 修改每步线性速度累加器。这两种 ForceMode 组的混合不适用于 Articulation Body,只会应用每秒线性速度累加器。
有关 ForceMode 如何影响速度的更多信息,请参阅 Rigidbody.AddForce。
默认情况下,当应用力时,ArticulationBody 的状态设置为唤醒状态,除非力为 Vector3.zero。
计量单位 - N(牛顿)。
其他资源:AddForceAtPosition、AddRelativeForce、AddTorque。
此示例将向 GameObject 的 ArticulationBody 应用向前力。
using UnityEngine;
public class Example : MonoBehaviour { ArticulationBody m_ArticulationBody; public float m_Thrust = 20f;
void Start() { //Fetch the ArticulationBody from the GameObject with this script attached m_ArticulationBody = GetComponent<ArticulationBody>(); }
void FixedUpdate() { if (Input.GetButton("Jump")) { //Apply a force to this ArticulationBody in the direction of this GameObject's up-axis m_ArticulationBody.AddForce(transform.up * m_Thrust); } } }