クラスを使うと管理に便利。
クラスで使う変数をメンバ変数、クラスで使う関数をメンバ関数と呼ぶ。
「this」→自分自身のクラスが持つ変数を利用するときに使う。thisはつけなくても動作するが、次のようにメンバ変数とお同じ名前のローカル変数を宣言した場合、powerとだけ書くとローカル変数の値が優先的に使われてしまう。そこでメンバ変数を使うときは明示的に[this]をつけておくことでバグを減らすことができる。
private int power = 50;
(省略)
public void Attack(){
int power = 999;
Debug.Log(power + "のダメージを与えた");
//ローカル変数が優先され、999のダメージを与えることになる。
}
Vectorとは?
3Dゲームを作る場合、空間上のどこにOBを置くのか、どちらの方向も移動するのか、どちらに力を加えるかなどを決めるため、float型の「x,y,z」の3つの値を扱う。
そしてこれらをひとまとまりにしたものがVector3クラス。
2Dゲーム用にはVector2クラスもある。(x,yのみ)
void Start()
{
Vector2 playerPos = new Vector2(3.0f, 4.0f);
playerPos.x += 8.0f;
playerPos.y += 5.0f;
Debug.Log(playerPos);
}
UnityOfficial
**変数**
magnitude ベクトルの長さ(読み取り専用)
normalized magnitude を 1 としたベクトル(読み取り専用)
sqrMagnitude ベクトルの 2 乗の長さを返します(読み取り専用)
this[int] [0] や [1] を使用して x や y 成分にアクセスします
x ベクトルの X 成分
y ベクトルの Y 成分
Vector2同士の減算。ベクトルの長さを求めている。
void Start()
{
Vector2 startPos = new Vector2(3.0f, 4.0f);
Vector2 endPos = new Vector2(8.0f, 4.0f);
Vector2 dir = endPos - startPos;
Debug.Log(dir);
float len = dir.magnitude;
Debug.Log(len);
}