Unity 2Dキャラクターを動かす!VectorとTransformの違い

当ページのリンクには広告が含まれています。

キャラクターを動かしたいけれど、
VectorとTransformどちらを使えばいい?

たくちん

未経験からゲームを作成したわたしが
丁寧に解説します。

この記事を読むと・・・

  • キャラクターの動かし方がわかる
  • VectorとTransform positionの違いがわかる
  • 実際のゲームを使った解説でつかえるようになる

どの要素もゲーム開発にかかせません。

未経験のわたしだからこそ、つまずきポイントが分かります。

ぜひ、学習してみてあなたのゲーム開発に活かしてもらえれば幸いです。

せっかく始めたゲーム開発・・・。

挫折してしまうのはもったいない!

たくちん

朝起きたら、ゲーム開発に関する知識詰め込まれてないかな・・・なんて。

アンケートで分かった「稼ぐこと」ができた学習方法をまとめました。

\ゲーム開発ができる「引き出し」が無限に!/

たくちん

ゲーム開発ができる世界へワープしませんか?

目次

VectorとTransformの違い

キャラクターを移動させるために使うスクリプトは、大きく分けて2週類あります。

  • Vector3(2Dの場合に2でも良し)
  • Transform position

同じ動きに見えて実は内部のプログラムは違う両者。

ここをキチンと理解しておかないと後々困ることになります。

ざっくり結論を書くとこんな感じです。

Vector:力の大きさをコントロールする
Transform position:位置をコントロールする

たくちん

オススメはVetorでの移動です。
理由は力をコントールした方が楽だから。
記事内で解説します。

Vectorを使った移動

ベクトル演算は 3D グラフィックス、物理演算およびアニメーションにとって基本であり、さらに深く理解することで Unity を最大限活用するのに役立ちます。

こちらがUnity公式のVector(ベクトル)の説明文です。

難しく書いてありますが要するに・・・

オブジェクトの向きと大きさを表しています。

クリックするとジャンプするプログラミングコード内で【Vector3】を使用しました。

AddForceと組み合わせて力を加えることで移動する仕組みでしたね。

実際のゲームで使ったVectorによる移動

クリックするとジャンプするようスクリプト(Vector)を使った実際のゲーム画面の一例です。

たくちん

プログラミングコードの詳細や原理を詳しく解説しています。
まだ見てない方はぜひ確認してみてください。

Transform positionを使った移動

シーン内のすべてのオブジェクトには、トランスフォーム(変換)があります。これはオブジェクトの位置、回転、スケールを保存し、操作するために使用されます。すべてのトランスフォームには親を持つことができ、これによって位置、回転、スケールを階層的に適用することができます。

こちらがUnity公式のTransform position(トランスフォームポジション)の説明文です。

またしても難しいことが書いてありますね。

将棋の盤面をイメージしてみてください。

どういうこと?と思うかもしれませんが、Transform positionを理解するうえで一番納得がいったため共有します。

  • 将棋盤面の横軸は「筋」と表します。
  • 縦軸は「段」です。

例:4筋7段で中央

将棋盤面の場所をUnityで表すと・・・「X軸」「Y軸」に当てはまります。

画像でみるとこんなイメージになります。

この「X軸」「Y軸」を変更するスクリプトを作成することで移動や出現位置を調整することができます。

実際のゲームを使ったTransform.positionの移動

Y軸(縦方向)に少しずつ加算するスクリプトを使った一例です。

たくちん

ヌルヌルと上がっていっていますね。
早く動かしたい場合は加算する数字を大きくすることで調整できます。

Transform positionとは?

一通り説明しましたが、Transformpositionってなんぞや?が解決できなかった方のために補足します。

Transform部分の画像通り、3つをコントロールしている部分です。

  • 位置
  • 回転
  • スケール(大きさ)
たくちん

Z軸を使って3D方向に動かすことも可能です。

画像の数字をスクリプトを使ってコントロールすることで移動やキャラクターを動かすことができます。

\ゲーム開発ができる「引き出し」が無限に!/

たくちん

ゲーム開発ができる世界へワープしませんか?

まとめ VectorとTransformの違い【オススメはVetor】

両者の違いは・・・

Vector:力の大きさをコントロールする
Transform position:位置をコントロールする

void Update()
    {
        rb2d.velocity = Vector3.zero;
        rb2d.AddForce(Vector3.up * jump);
    }

オススメはVetorです。

Transform.positionよりシンプルでわかりやすく、力の関係を習得するのにもってこいだからです。

たくちん

あなたの作りたいゲームに合わせて使い分けてみてください。
ではまた別の記事で〜

ゲームの作り方総集編!

11ステップであなたもゲームが作れる。喜んでもらえる。

未経験からでも、分かる!が積み上がりゲームを完成できる。

詳細はこちらから。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ゲーム開発をしている人が挫折せず「楽しく続けられること」

知識ゼロからUnityを使ってゲームを完成させることができました。
ゲームの作り方を無料で公開!
ご不明点はお問い合わせまで♪

コメント

コメントする

CAPTCHA


目次