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); } } }
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); } }