スポンサーリンク

【Unity】重力を変更する方法

Unity

プロジェクト全体の重力を変える

プロジェクト全体の重力の強さは、「ProjectSettings → Physics → Gravity」の値を変更することで設定することが出来ます。

初期値は、Y軸の値のみ設定されていますが、X軸とZ軸も値を設定することが出来ます。

オブジェクト単体の重力を変える

using UnityEngine;

public class Gravity : MonoBehaviour
{
    private Rigidbody _rigidbody;

    public float gravity = -9.81f;

    private void Awake()
    {
        _rigidbody = GetComponent<Rigidbody>(); //Rigidbodyを取得する

        _rigidbody.useGravity = false;          //RigidbodyのuseGravityを無効化する
    }

    private void FixedUpdate()
    {
        _rigidbody.AddForce(Vector3.up * gravity, ForceMode.Acceleration);  //重力をかけ続ける
    }
}

オブジェクト単体重力のみを変えるときは、専用のスクリプトを実装する必要があります。

スクリプトの内容としては、RigidbodyのuseGravityをOFFにして、FixedUpdate内で自前の重力をかけ続けています。

gravity変数の値を変えることで、重力の強さを変えることが出来ます。

スクリプトを書いたら、重力を変更したいゲームオブジェクトにアタッチして、動作を確認します。

問題なく、落下速度が変わっていれば作業は終了です!

お疲れさまでした!

タイトルとURLをコピーしました