Vector(Unity)
Vectorとは、Unityプログラミングにおいて用いる構造体の一つであり、ゲームオブジェクトの位置や方向を表す構造体として用いられます。
Vectorはその名のとおり、ベクトルを表しており、向きをもった物理量です。対義語にスカラーというものがありますが、こちらは値の大小のみであり向きを持ちません。
Vectorが持つ機能は、位置や方向に関する情報の利用と保持、一般的なベクトル演算の機能(関数)があります。3次元のものをVector3、2次元用のものをVector2と呼びます。3次元の場合、3次元空間の(x, y, z)のそれぞれの座標軸に対するベクトルです。
記述例を以下に示します。
Vector3 v = new Vector3( 1.0f, // v.x
2.0f, // v.y
3.0f);// v.z
ベクトル同士は下記のように四則演算が可能です。
Vector3 v1 = new Vector3(0.0f, 1.0f, 1.0f);
Vector3 v2 = new Vector3(1.0f, 0.0f, 0.0f);
Vector3 v3 = v1 + v2; //v3 = (1.0f, 1.0f, 1.0f)
初期化用の定数のベクトルも用意されています。
//前後
Vector3 v1 = Vector3.back; // ( 0, 0,-1)
Vector3 v2 = Vector3.forward; // ( 0, 0, 1)
//上下左右
Vector3 v3 = Vector3.down; // ( 0,-1, 0)
Vector3 v4 = Vector3.left; // (-1, 0, 0)
Vector3 v5 = Vector3.right; // ( 1, 0, 0)
Vector3 v6 = Vector3.up; // ( 0, 1, 0)
//ベクトルの大きさで指定
Vector3 v7 = Vector3.one; // ( 1, 1, 1)
Vector3 v8 = Vector3.zero; // ( 0, 0, 0)
また、Vector3はベクトルとして扱えるだけでなく、そのベクトルに関する情報を計算してくれる関数もついています。
normalized
ベクトルを正規化して返します。正規化とは、ベクトルの方向は維持しつつ、ベクトルの大きさを「1」にする事を指します。
magnitude
ベクトルの長さを返します。長さは数学的に√(x^2+y^2+z^2)で算出されますので、この計算結果を指しています。
sqrMagnitude
magnitude平方根を求めない場合の計算結果を返します。つまり、(x^2+y^2+z^2)の値を計算した結果を示します。