橋本翼(ツバサムス)

メタバースプログラマー。
UnityとUnreal Engineを専門的に扱う。
メタバース系スタートアップ企業に所属。

詳細はこちら

【UnityC#基礎講座⑥】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をコピーしました