Unityでは、3D空間でのオブジェクト制御をするために「Vector3」という構造体が用意されています。
Vector3は、ゲーム開発に使われるオブジェクトのPositionやRotation、Scaleなどの制御で活用されます。
本記事で、Vector3の基本構文や実際の活用方法を実践的な例を交えながら確認していきましょう。
UnityのVector3とは
UnityのVector3は、3次元ベクトルを表すための構造体です。ゲームでは、操作によってキャラクターや物体が位置や向き、大きさを変えるのは一般的です。
このとき、Vector3を使うことで、スクリプトから正確にその動きを指定できます。
例えば、キャラクターを右に動かしたい場合、Xの値を増やすだけで実現可能です。
また、Unityの画面上で設定できる「Position(位置)」「Rotation(回転)」「Scale(スケール)」といった項目も、実際はVector3によって操作されています。
Vector3は、ゲーム制作において重要な役割を果たしており、直感的に空間を扱える便利な仕組みです。初心者でも覚えれば簡単に3D空間をコントロールできるようになるでしょう。
UnityでVector3の知識は必須?
Unityは、プログラムが書けなくてもゲームを作成できるプラットフォームのため、初学者のうちは、Vector3の知識は必須でありません。
特に、シンプルかつ簡単なゲームプロジェクトであれば、Inspectorウィンドウで設定を変更するだけで、スクリプトを使わなくても物体を動作させられます。
しかし、複雑な動きを取り入れたゲームを作るには、コードを書いてプログラムを動かす必要があります。
そのため、高度なゲームを作りたいと考えている場合は、プログラムの基礎となるVector3の知識は必須です。
また、Unityに導入されているプログラミング言語であるC#は、Vector3以外にもさまざまな動作の制御を行えます。
C#について詳しく知りたい方は、以下の記事を参考にしてみてください。
C#を使えるようになればできることや、C#の具体的な学習方法などについて解説しています。
UnityのVector3の構文
UnityでVector3を活用する際の基本構文は以下のとおりです。
項目 | 説明 |
Vector3 | Unityで3次元空間のデータを扱うためのクラス。 |
変数名 | 作成したVector3の値を保存するための名前です。自分でわかりやすい名前を付ける。 |
new Vector3(x, y, z) | 「x」「y」「z」は、それぞれの座標値を表す。xは左右、yは上下、zは前後を意味する。この3つの値を設定することで、3次元空間内の位置や方向を自由に指定可能。 |
また、引数には整数だけでなく、小数点を含む値も設定できるため、より細かい位置や動きも表現可能です。
実際にUnityのVector3を使ってみる
UnityのVector3を使う際の以下の実例について見ていきます。
- 値をConsoleに出力する
- オブジェクトの位置を変更する
- 値を再代入する
- 値を計算する
Vector3を使うにはスクリプトを作成する必要があるので、事前準備としてProjectウィンドウで右クリックして「Create」から「C# Script」を作成しておきましょう。
実例①値をConsoleに出力する
変数hogeに代入した値をConsoleビューに出力してみましょう。
void Start()
{
Debug.Log(hoge.x);
Debug.Log(hoge.y);
Debug.og(hoge.z);
}
上記の記述では、ゲームを動かした際、Consoleウィンドウにx、y、zの値が出力されます。
スクリプトを保存してUnity Editorからゲームを再生し、Consoleウィンドウを確認してみましょう。
実例②オブジェクトの位置を変更する
Vector3を活用して実際に位置を変えるなら、以下の記述をしましょう。
void Start()
{
transform.position = hoge;
}
上記の記述では、スクリプトをアタッチしているオブジェクトのposition要素に、Start関数の外で指定した変数hogeの値を代入しています。
この記述をした状態でGameビューのスタートボタンでゲームを開始したら、X軸方向にオブジェクトが「1」動きます。
実例③値を再代入する
一度設定したVector3の値は、後から再代入することもできます。
void Start()
{
hoge.x = 2;
transform.position = hoge;
}
上記のように記述することで、1だったxの値が2に変更されます。
実例④値を計算する
四則演算を使えば、Vector3同士の計算も可能です。
Vector3 b = new Vector3(2, 3, 4);
Vector3 c = a + b;
Debug.Log (c.x);
Debug.Log (c.y);
Debug.Log (c.z);
上記のコードでは、変数aと変数bを足し算した値を変数cに代入しています。Consoleウィンドウで出力してみると、実際にVector3同士で計算ができているのがわかります。
また、足し算だけでなく引き算や掛け算など、ほかの四則演算も可能です。
以下の記事ではC#を使ってゲームオブジェクトに当たり判定をつける方法について解説しているので、気になる方はこちらもあわせてご覧ください。
Vector3の便利なStatic変数
UnityのVector3には、よく使われる値があらかじめ定義されたStatic変数が用意されています。
Static変数を使うことにより、新しいVector3を毎回定義しなくても、簡単に特定の方向や初期値を利用できます。
Vector3 b = Vector3.zero; // new Vector3(0, 0, 0)
Vector3 c = Vector3.up; // new Vector3(0, 1, 0)
Vector3 d = Vector3.down; // new Vector3(0, -1, 0)
Vector3 e = Vector3.right; // new Vector3(1, 0, 0)
Vector3 f = Vector3.left; // new Vector3(-1, 0, 0)
Vector3 g = Vector3.forward; // new Vector3(0, 0, 1)
Vector3 h = Vector3.back; // new Vector3(0, 0, -1)
「Vector3 a = Vector3.one;」は、「new Vector3(1, 1, 1) 」と同じ意味です。Static関数はコードを簡潔に書けるので、コード記述の効率が高まります。
ぜひあわせて覚えておきましょう。
UnityのVector3を学ぶなら
Vector3の使い方は独学で学ぶ方法と、セミナーで学ぶ方法があります。
それぞれの方法には独自のメリットがあり、自分の目的や学習スタイルに合わせて選ぶことが大切です。
これらの特徴について見ていきましょう。
学習方法①独学で学ぶ
独学でUnityのVector3を学ぶ方法は、自分のペースで自由に進められるのが魅力です。
独学では、公式ドキュメントやオンラインチュートリアル、YouTube動画、ブログ記事など、インターネット上に豊富にある無料のリソースを活用できます。
特に、Unity公式サイトが提供する初心者向けのチュートリアルは、基礎から丁寧に学べる内容になってぃす。
独学では、Unityのプロジェクトを実際に作りながら学ぶことが大切です。
一方で、独学には課題もあります。
疑問点が出てきた際に解決に時間がかかったり、効率的な学習手順を見失ったりすることもあるため、自分でリサーチしながら試行錯誤を繰り返す力が求められます。
それでも、独学にはメリットと多いので、費用をかけずに自分のペースで学習したい方は、ぜひ独学にチャレンジしてみましょう。
また、Unity公式チュートリアルの使い方については以下の記事を参考にしてください。
人気のチュートリアルや、チュートリアルを使う際の注意点について紹介しています。
学習方法②セミナーで学ぶ
UnityのVector3など、スクリプトを使った開発を行うなら、セミナーの利用がおすすめです。
Unity基礎セミナーでは、スクリプトを活用してさまざまなゲームの作成方法について学べます。
セミナーでは、以下のようなことを学習できます。
- Unityの画面構成や作業の流れ
- Prefab機能を使ったCG背景の制作
- モデルとアニメーションを同期する方法
- 物理演算を活用したサイコロゲームの作成
- 当たり判定を導入したダンジョン探索ゲーム
- ダメージや回復システムを導入したFPSの作成
- アイテムショップやタイトル画面を導入したRPGの作成
実務に即したカリキュラムでセミナーが進行するため、ゲーム開発のエンジニアとして活躍したい人に特におすすめです。
2日間という短期間で濃い内容を学べるとして、受講者からも高い評価を得ています。
Unityを本格的に学びたいと考えている方は、ぜひUnity基礎セミナーをチェックしてみてください。
UnityのVector3のまとめ
今回は、UnityのVector3について紹介しました。Vector3は、3次元空間でオブジェクトのPositionやRotation、Scaleを管理するために活用される構造体です。
基本構文や実際の使い方、便利なStatic変数の活用方法を理解することで、ゲーム開発におけるさまざまな操作をスムーズに行えるようになります。
場合によってはセミナーも活用しながら、Unityのスキルを高めましょう。
