Mathfクラス
1. Mathf.Atan2
-
説明:
Mathf.Atan2は、2D空間で点(x,y)の位置から、原点(0, 0)との間の角度を計算します。この関数は、引数としてy座標とx座標を取ります。 -
戻り値: 計算した角度(ラジアン)を返します。
Mathf.Rad2Degを使って度数法に変換することができます。 -
使用例:
float angle = Mathf.Atan2(pos.y, pos.x) * Mathf.Rad2Deg;これは、
(pos.x, pos.y)という2Dベクトルの方向を原点からの角度に変換しています。 -
用途: 主に、2D空間でベクトルの向きを角度に変換したり、回転を計算する際に使用します。
2. Mathf.Abs
-
説明:
Mathf.Absは、引数の絶対値を返します。 -
戻り値: 引数の絶対値。
-
使用例:
float absoluteValue = Mathf.Abs(-10); // 結果は10 -
用途: ベクトルの成分やスカラー値の絶対値を取得する際に使います。例えば、座標の変化量の絶対値を取得して距離を計算する時などです。
3. Mathf.Max / Mathf.Min
-
説明:
Mathf.MaxとMathf.Minは、それぞれ引数の中で最大値と最小値を返します。 -
戻り値: 最大値または最小値。
-
使用例:
float maxValue = Mathf.Max(10, 20); // 結果は20
float minValue = Mathf.Min(10, 20); // 結果は10 -
用途: 最大値または最小値を求める場合に使用します。例えば、画面外に出ないように、座標を最大値または最小値で制限する際に便利です。
4. Mathf.Lerp
-
説明:
Mathf.Lerpは、2つの数値(aとb)の間を線形補間して、指定した割合(t)でその値を返します。 -
戻り値: 2つの値の間の補間された値。
-
使用例:
float lerpedValue = Mathf.Lerp(0, 10, 0.5f); // 結果は5 -
用途: 2つの値の間を滑らかに遷移させるために使用します。例えば、位置や色を補間してスムーズに遷移させる際に使います。
5. Mathf.Approximately
-
説明:
Mathf.Approximatelyは、2つの浮動小数点数がほぼ等しいかどうかを判定します。浮動小数点演算における丸め誤差を考慮して比較を行います。 -
戻り値:
trueまたはfalse(数値がほぼ等しい場合はtrue)。 -
使用例:
bool isEqual = Mathf.Approximately(0.1f + 0.2f, 0.3f); // 結果はtrue -
用途: 浮動小数点数の比較を行う際に、誤差を考慮して等しいかどうかを判定します。特に計算結果が微小な誤差を含んでいる場合に便利です。
6. Mathf.Sign
-
説明:
Mathf.Signは、指定した数値の符号を返します。もし数値が正の数であれば1、負の数であれば-1、ゼロであれば0を返します。 -
戻り値: 数値の符号(
1,-1,0)。 -
使用例:
float sign = Mathf.Sign(-5); // 結果は-1 -
用途: 例えば、値が正か負かを確認する際に使用します。位置や速度の計算で、方向を判定するために使われます。
7. Mathf.Cos / Mathf.Sin
-
説明:
Mathf.CosとMathf.Sinは、角度をラジアンで指定して、それぞれコサインとサインの値を返します。 -
戻り値: コサインまたはサインの値。
-
使用例:
float cosine = Mathf.Cos(Mathf.PI / 4); // 結果は0.7071...
float sine = Mathf.Sin(Mathf.PI / 4); // 結果は0.7071... -
用途: 2D空間や3D空間での回転や方向ベクトルの計算に使用します。例えば、円運動を表現したり、オブジェクトの回転を計算する際に使います。
8. Mathf.Rad2Deg / Mathf.Deg2Rad
-
説明:
Mathf.Rad2Degはラジアンから度数に変換するための定数で、Mathf.Deg2Radは度数からラジアンに変換するための定数です。 -
戻り値: 定数。
-
使用例:
float radians = Mathf.PI / 4;
float degrees = radians * Mathf.Rad2Deg; // 結果は45度 -
用途: 角度をラジアンと度数の間で変換する際に使用します。Unityでは通常ラジアンで計算されるため、度数法で表示したい場合に必要です。
9. Mathf.Clamp / Mathf.Clamp01
-
説明:
Mathf.Clampは、指定した範囲内に数値を制限します。Mathf.Clamp01は、0から1の範囲内に数値を制限します。 -
戻り値: 範囲内に制限された 値。
-
使用例:
float clampedValue = Mathf.Clamp(15, 0, 10); // 結果は10 -
用途: 数値を特定の範囲に制限したい場合に使用します。例えば、プレイヤーの位置やHPなどが範囲外に出ないように制限する場合に便利です。
まとめ
これらの関数を使うことで、数学的な計算や変換を効率的に行い、ゲーム内での挙動を制御することができます。
例えば、ターゲットの方向を計算するためにMathf.Atan2を使用したり、スクリーン座標での位置調整にMathf.AbsやMathf.Maxを使用したりします。
ゲーム開発ではこれらの基本的な数学関数を駆使して、ゲーム内オブジェクトの位置、回転、スケーリングなどの操作を行うことが非常に多いです。