【Unity基礎講座⑥】Vector2/Vector3

Unity

Vector2/Vector3

Vector クラス

概要

3Dゲームを作る際、「空間上のどこにオブジェクトを置くか」「どちらの方向に移動するのか」「どちらに力を加えるのか」等を決めるために float 型の「x,y,z」の3つの値を扱う。

これらの値をひとまとめに扱えるようにしたクラスが Vector3 クラス構造体)である。

2Dゲーム用には float 型の「x,y」の値を持つ Vector2 クラス構造体)が用意されている。

コード(擬似的)

class Vector3
{
  public float x;
  public float y;
  public float z;

 //以下Vector用のメンバメソッドが続く
}

説明

Vector3 クラスにはメンバ変数として「x,y,z」、Vector2 クラスには「x.y」が用意されており、座標ベクトルとして使う事が出来る。

座標として使う場合、「x = 3」「y = 5」とすると、「(3,5)」の位置にオブジェクトが配置される事を意味し、ベクトルとして使う場合は現在の位置から「x 方向に3」「y 方向に5」進む事を意味する。

Vector クラスの使い方

コード

Vector2 playerPos = new Vector2(3.0f,4.0f);
playerPos.x += 8.0f;
playerPos.y += 5.0f;
Debug.Log(playerPos);

出力結果

(11.0,9.0)

Vector2 同士の減算

コード

Vector2 startPos = new Vector(2.0f,1.0f);
Vector2 endPos = new Vector2(8.0f,5.0f);
Vector2 dir = endPos - startPos;
Debug.Log(dir);

float length = dir.magnitude;
Debug.Log(length);

出力結果

(6.0,4.0)
7.211102

説明

下記のように記述し、

Vector型の変数.magnitude;

Vector クラスmagnitude 変数(メンバ変数)にアクセスすると、ベクトルの長さを取得できる。

その他

参考書籍


お問い合わせ

    タイトルとURLをコピーしました