Mathfライブラリとは?

プログラミングと数学は切っても切れませんが、UnityにはMathfというライブラリが用意されています。

これは数学関数を集めた静的クラスで、ゲーム開発でよく使う数学的な処理を簡単に実装できます。

C#System.Mathに似ていますが、float型に特化しており、Unity特有の処理が含まれているのが特徴です。

主な機能とよく使われる関数

三角関数

中学の数学で習う三角関数のメソッド群が用意されています。

引数はすべてラジアンで指定します。度(°)ではないため注意してください。

  • Mathf.Sin(float f):サイン(正弦)
  • Mathf.Cos(float f):コサイン(余弦)
  • Mathf.Tan(float f):タンジェント(正接)

そのほかの逆三角関数も用意されています:

  • Mathf.Asin(float f):アークサイン(逆正弦)
  • Mathf.Acos(float f):アークコサイン(逆余弦)
  • Mathf.Atan(float f):アークタンジェント(逆正接)

補間

2つの値を時間経過で補間するメソッド群です。

初期値をa、最終値をb、経過時間をtとして渡すことで、その時間に応じた中間の値を取得できます。

tの値は0f1fの範囲で指定します。

  • Mathf.Lerp(a, b, t)線形補間(Linear Interpolation)
  • Mathf.LerpUnclamped(a, b, t)クランプされない**Lerp**(t0f1fを超えても補間可能)
  • Mathf.SmoothStep(a, b, t)スムーズな曲線的補間(より自然な変化を実現)

値の操作

値を操作・制限するためのメソッド群です。

特に範囲外の値を使わせたくない場面で役立ちます。

  • Mathf.Clamp(v, min, max)vの値をminmaxの範囲に制限します
  • Mathf.Clamp01(v)vの値を01の範囲に制限します
  • Mathf.Repeat(t, length)tlengthの範囲でループさせます(t % lengthのような挙動)
  • Mathf.PingPong(t, length)tlengthの範囲で往復させます(行って戻る動きを再現)

四則演算など

こちらは、数学でよく使われる基本的なメソッド群です。

  • Mathf.Abs(float v):絶対値を返します(例:3 → 3
  • Mathf.Pow(float v, float p)vp乗(累乗)を計算します
  • Mathf.Sqrt(float v):平方根を計算します(v≥ 0 の場合)

その他にも、対数を扱う以下のメソッドがあります:

  • Mathf.Log(float f):自然対数(底e)を計算します
  • Mathf.Log10(float f):常用対数(底10)を計算します

数学的な補助

2つの値a,bに対して小さい方・大きい方を返すメソッドです。

  • Mathf.Min(a, b):小さい方の値を返します
  • Mathf.Max(a, b):大きい方の値を返します

四捨五入、切り捨て、切り上げを行うメソッドです。

  • Mathf.Round(float v)vを四捨五入します
  • Mathf.Floor(float v)vを切り捨て(小さい方へ丸め)ます
  • Mathf.Ceil(float v)vを切り上げ(大きい方へ丸め)ます

符号を取得するメソッドです。

  • Mathf.Sign(float v)vが正の値なら1、負の値なら1を返します

定数

数学でよく使う定数も用意されています。

定数説明
PI3.141592f円周率、所謂πです
Deg2Rad0.01745329f角度に掛けることでラジアンに変換できます
Rad2Deg57.29578fラジアンに掛けることで角度に変換します
Epsilon1.4e-45f0に限りなく近い最小の正の浮動小数です

その他

他にもいくつかの便利なメソッドが用意されています。

  • Mathf.Approximately(a, b):浮動小数点の誤差を考慮して、abがほぼ等しいかを判定します
  • Mathf.DeltaAngle(float current, float target)currenttargetの角度差を180度から180度の範囲で返します

まとめ

今回は、Unityにおける算術ライブラリMathfについて紹介しました。

ゲーム開発では、キャラクターの動きやエフェクト、UIのアニメーションなど、

さまざまな場面で数学的な処理が必要になります。

一見難しそうに感じるかもしれませんが、Mathfクラスには基本的な計算や補間、角度の処理などがひと通り用意されているため、

これらをうまく活用することで開発をスムーズに進めることができます。

数学を完全に避けるのは難しいですが、便利な関数を知っておくだけでも大きな助けになります。

ぜひ積極的にMathfを使いこなして、より効率的な開発に役立ててみてください。