[Unity6] velocityでRigidbodyの速度を取得するのはもう古い?

(2025/02/17)
[Unity6] velocityでRigidbodyの速度を取得するのはもう古い?

開発環境
  • Unityのバージョン : 6000.0.36f1
  • velocityは旧形式?

    Unity6で開発中、Rigidbodyのvelocityを使って速度を変更しようとすると以下の警告文が表示されました。

    [Unity6] velocityでRigidbodyの速度を取得するのはもう古い?

    Noを選択すると、コンソールに「warning CS0618: 'Rigidbody.velocity' is obsolete: 'Please use Rigidbody.linearVelocity instead. (UnityUpgradable) ->」と表示されました。 この状態でもエラーを出さずに実行することは出来ました。

    Yesを選択すると、Unity側が自動的にrb.velocityとなっているところを、rb.linearVelocityに変更してくれ警告も表示されなくなりました。

    Unity6では速度を取得するために、velocityではなくlinearVelocityを使うようになったようです。

    linearVelocityとは?velocityと何が違う?

    自分が調べた範囲では、「名称をより明確にするため」に変更されたようで使い方や機能は同じようです。 (情報源が少なかったため、間違っているかもしれないです。)


    結論

    Unity6で開発を進めていくなら、velocityではなくlinearVelocityを使っておけば良さそうです。

     private Rigidbody rb;
    
    void Start()
    {
        rb = GetComponent<Rigidbody>();
        // velocityではなくlinearVelocityを使う!
        rb.linearVelocity = new Vector3(0, 10, 0);
    }