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