Version: 2020.3
言語: 日本語
public void AddForce (Vector3 force, ForceMode mode= ForceMode.Force);

パラメーター

force ワールド座標における力のベクトル
mode 適用する力のタイプ

説明

Rigidbody に力を加えます

力は force ベクトルの方向に継続的に加えられます。ForceMode の mode を指定することによって、力のタイプを Acceleration、Impulse、VelocityChange に変えることができます。

Applied Force is calculated in FixedUpdate or by explicitly calling the Physics.Simulate method.

Force can only be applied to an active Rigidbody. If a GameObject is inactive, AddForce has no effect. Also, the Rigidbody cannot be kinematic.

デフォルトでは、いちど力が加わると、力が Vector3.zero でない限りは Rigidbody の状態はオンに設定されます。

See Also: AddForceAtPosition, AddRelativeForce, AddTorque.

この例では GameObject の Rigidbody に前方への力を加えています。

using UnityEngine;

public class Example : MonoBehaviour { Rigidbody m_Rigidbody; public float m_Thrust = 20f;

void Start() { //Fetch the Rigidbody from the GameObject with this script attached m_Rigidbody = GetComponent<Rigidbody>(); }

void FixedUpdate() { if (Input.GetButton("Jump")) { //Apply a force to this Rigidbody in direction of this GameObjects up axis m_Rigidbody.AddForce(transform.up * m_Thrust); } } }

public void AddForce (float x, float y, float z, ForceMode mode= ForceMode.Force);

パラメーター

x ワールドの x 軸に沿った力のサイズ
y ワールドの y 軸に沿った力のサイズ
z ワールドの z 軸に沿った力のサイズ
mode 適用する力のタイプ

説明

Rigidbody に力を加えます

この例では、GameObject の Rigidbody に対し Impulse タイプの力を Z 軸に沿って加えています。

using UnityEngine;

public class Example : MonoBehaviour { public float thrust = 1.0f; public Rigidbody rb;

void Start() { rb = GetComponent<Rigidbody>(); rb.AddForce(0, 0, thrust, ForceMode.Impulse); } }