【Unity】初学者向けベクトルの基本と応用

2024年9月17日

ベクトルは、Unityでオブジェクトの位置や動き、回転などを制御する際に非常に重要な概念です。ベクトルは「方向」と「大きさ」を持つ数値であり、特に3Dゲーム開発では頻繁に使用されます。この資料では、Unityでのベクトルの使い方について説明します。

1. ベクトルの基本

ベクトルは通常、X軸Y軸Z軸の3つの要素で構成されます。Unityでは、Vector3 型を使って3D空間の座標や方向を扱います。

Vector3 position = new Vector3(1, 2, 3);
  • X軸:水平方向(左右)を表します。
  • Y軸:垂直方向(上下)を表します。
  • Z軸:奥行き方向(前後)を表します。

2. オブジェクトの位置を設定する

Unityでは、ベクトルを使ってオブジェクトの位置を設定できます。例えば、オブジェクトを特定の位置に移動させるには、transform.position にベクトルを代入します。

transform.position = new Vector3(0, 5, 0);

このコードは、オブジェクトを高さ5の位置に移動させます。

3. ベクトルの操作

ベクトル同士の足し算や掛け算によって、オブジェクトの移動や速度を制御できます。

  • ベクトルの足し算:2つのベクトルを足すことで、新しい位置を計算できます。
Vector3 velocity = new Vector3(1, 0, 0); // X方向に動く
transform.position += velocity * Time.deltaTime;
  • ベクトルの大きさ:ベクトルの長さ(大きさ)を求めることで、オブジェクトの距離や速度を計算できます。
float distance = position.magnitude;

4. ベクトルの正規化

ベクトルを正規化することで、そのベクトルの方向を保持しつつ、大きさを1にすることができます。これは、オブジェクトの方向を計算する際に役立ちます。

Vector3 direction = velocity.normalized;

5. 応用:オブジェクトの移動

ベクトルを使ってオブジェクトを移動させる基本的な方法を紹介します。たとえば、ユーザーが矢印キーを押すと、オブジェクトをその方向に動かすことができます。

void Update() 
{
    Vector3 move = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
    transform.position += move * Time.deltaTime * speed;
}

このコードでは、ユーザーの入力に応じてオブジェクトが移動します。Input.GetAxis("Horizontal") は左右方向の入力を取得し、Input.GetAxis("Vertical") は前後方向の入力を取得します。

6. ベクトルの応用例

  • 距離の計算:2つのオブジェクト間の距離をベクトルを使って計算できます。
float distance = Vector3.Distance(transform.position, target.position);
  • オブジェクトの方向:特定のオブジェクトに向かって進む方向を計算する場合、ベクトルの差分を使います。
Vector3 direction = (target.position - transform.position).normalized;

おわりに

ベクトルは、ゲームの物理シミュレーション、カメラの動き、オブジェクトの移動など、多くの場面で使われます。この資料で紹介した基本的な使い方を参考にしながら、Unityでの開発を進めていきましょう。


この技術資料はベクトルの基本とその操作について解説しました。引き続き学習を深め、ベクトルの応用方法に慣れていきましょう。

Unity

Posted by hidepon