版本:Unity 6 (6000.0)
语言English
  • C#

ArticulationBody.AddForce

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

public void AddForce(Vector3 force, ForceMode mode = ForceMode.Force);

参数

force 要应用的力向量。
mode 要应用的力的类型。

描述

将力应用于 ArticulationBody

请注意,力会在模拟帧的持续时间内累积。它仅在模拟步骤期间物理应用于关节体,在调用脚本的 FixedUpdate 之后。指定 ForceMode mode 允许将力的类型更改为加速度、冲量或速度变化。

您只能将力应用于活动的 ArticulationBody。如果 GameObject 不活动,则 AddForce 不会产生任何效果。此外,ArticulationBody 必须是可移动的(不能是不可移动的)。

ForceMode.ForceForceMode.Acceleration 模式修改每秒线性速度累加器,而 ForceMode.ImpulseForceMode.VelocityChange 修改每步线性速度累加器。这两种 ForceMode 组的混合不适用于 Articulation Body,只会应用每秒线性速度累加器。

有关 ForceMode 如何影响速度的更多信息,请参阅 Rigidbody.AddForce

默认情况下,当应用力时,ArticulationBody 的状态设置为唤醒状态,除非力为 Vector3.zero
计量单位 - N(牛顿)。

其他资源:AddForceAtPositionAddRelativeForceAddTorque

此示例将向 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); } } }