Unityのオブジェクト移動に加速度を持たせる

いくつかの方法がありますが、ここでは「力を加える方法」を説明します。

まず、移動するオブジェクトにRigidbodyコンポーネントをアタッチします。

次に、以下のコードをスクリプトに追加します。

public class ObjectMovement : MonoBehaviour
{
    public float speed = 5f; // 移動速度
    public float acceleration = 2f; // 加速度

    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent();
    }

    void FixedUpdate()
    {
        float h = Input.GetAxis("Horizontal");
        float v = Input.GetAxis("Vertical");

        Vector3 moveDirection = new Vector3(h, 0f, v);

        // 加速度をかける
        moveDirection *= speed * acceleration;

        // 力を加える
        rb.AddForce(moveDirection);
    }
}

ここでは、加速度を掛けるために移動方向に移動速度と加速度を掛けることで加速度を考慮します。そして、`AddForce`によってRigidbodyに力を加えます。

ただし、この方法は物理演算を利用しているため、正しい速度を維持するためには`AddForce`の代わりに`velocity`を利用する方法もあります。また、空気抵抗を加えたり、摩擦係数を考慮した移動をするためにはより高度な方法が必要になることもあります。

コメント

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