[Unity]速度の取得方法・変更方法・テキストでの表示方法まとめ!

皆さんは<Rigidbody>を使ったことはあるでしょうか?

<Rigidbody>はいわば、物体の物理性質を表すコンポーネントです。
物理性質には質量や抵抗の大きさなどさまざまな値がありますが、その中でも「速度」は物理性質の中で非常に大切な数値ですよね。

このページでは、

  • 速度を取得する方法
  • 速度を変更する方法
  • 速度をテキストとして表示する方法

を解説します。

 

速度を取得する方法

結論から述べると、速度は「Rigidbody.velocity」で取得することができます。

 

では実際に試してみます。

まずは<Rigidbody>をアタッチしたオブジェクトを用意しましょう。

RigidBody

今回は Sphere に<Rigidbody>をアタッチしました。

次に以下のスクリプトを同じく Sphere にアタッチしましょう。

12行目で<Rigidbody>を取得し、18行目で速度を表示しています。

実行してみると、

速度の表示

コンソールに速度が表示されていますね。

 

速度を変更する方法

以下に速度を変更するコードを示します。

ベクトルとして代入することで速度を変更することができます。

このコードをスクリプトに追加して任意のタイミングで関数を呼べば、速度を変更することができます。
関数を呼ぶ際は、x方向の速さ、y方向の速さ、z方向の速さを引数として入力しなければならないことにご注意ください。

 

速度をテキストとして表示する方法

以下のコードでスクリプトを書き換えてください。

4行目は UI を扱えるようにするためのおまじないです。

8行目でTextをインスペクターから取得できるようにしています。

20行目で速度をテキストとして表示しています。

 

また、Unity 上に戻った後にTextを作って VelocityManager スクリプトで Text を取得するようにしましょう。

インスペクター

あとはテキストを画面にあうサイズに変更して、実行すると、

速度

このように速度がテキストとして表示されます。

 

まとめ

 

  • 速度を取得するには「Rigidbody.velocity」を使う
  • 速度を変更するにはベクトルで代入しよう
  • テキストで表示するには、「Text.text」でアクセスして変更しよう

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です