メインコンテンツまでスキップ

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.MaxMathf.Minは、それぞれ引数の中で最大値と最小値を返します。

  • 戻り値: 最大値または最小値。

  • 使用例:

    float maxValue = Mathf.Max(10, 20);  // 結果は20
    float minValue = Mathf.Min(10, 20); // 結果は10
  • 用途: 最大値または最小値を求める場合に使用します。例えば、画面外に出ないように、座標を最大値または最小値で制限する際に便利です。










4. Mathf.Lerp

  • 説明: Mathf.Lerpは、2つの数値(ab)の間を線形補間して、指定した割合(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.CosMathf.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.AbsMathf.Maxを使用したりします。

ゲーム開発ではこれらの基本的な数学関数を駆使して、ゲーム内オブジェクトの位置、回転、スケーリングなどの操作を行うことが非常に多いです。

様々な角度の求め方の例