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 変数(メンバ変数)にアクセスすると、ベクトルの長さを取得できる。
その他
参考書籍
リンク