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の値は0f~1fの範囲で指定します。
Mathf.Lerp(a, b, t):線形補間(Linear Interpolation)Mathf.LerpUnclamped(a, b, t):クランプされない**Lerp**(tが0f~1fを超えても補間可能)Mathf.SmoothStep(a, b, t):スムーズな曲線的補間(より自然な変化を実現)
値の操作
値を操作・制限するためのメソッド群です。
特に範囲外の値を使わせたくない場面で役立ちます。
Mathf.Clamp(v, min, max):vの値をmin〜maxの範囲に制限しますMathf.Clamp01(v):vの値を0〜1の範囲に制限しますMathf.Repeat(t, length):tをlengthの範囲でループさせます(t % lengthのような挙動)Mathf.PingPong(t, length):tをlengthの範囲で往復させます(行って戻る動きを再現)
四則演算など
こちらは、数学でよく使われる基本的なメソッド群です。
Mathf.Abs(float v):絶対値を返します(例:3 → 3)Mathf.Pow(float v, float p):vのp乗(累乗)を計算します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を返します
定数
数学でよく使う定数も用意されています。
| 定数 | 値 | 説明 |
|---|---|---|
| PI | 約3.141592f | 円周率、所謂πです |
| Deg2Rad | 約0.01745329f | 角度に掛けることでラジアンに変換できます |
| Rad2Deg | 約57.29578f | ラジアンに掛けることで角度に変換します |
| Epsilon | 約1.4e-45f | 0に限りなく近い最小の正の浮動小数です |
その他
他にもいくつかの便利なメソッドが用意されています。
Mathf.Approximately(a, b):浮動小数点の誤差を考慮して、aとbがほぼ等しいかを判定しますMathf.DeltaAngle(float current, float target):currentとtargetの角度差を180度から180度の範囲で返します
まとめ
今回は、Unityにおける算術ライブラリMathfについて紹介しました。
ゲーム開発では、キャラクターの動きやエフェクト、UIのアニメーションなど、
さまざまな場面で数学的な処理が必要になります。
一見難しそうに感じるかもしれませんが、Mathfクラスには基本的な計算や補間、角度の処理などがひと通り用意されているため、
これらをうまく活用することで開発をスムーズに進めることができます。
数学を完全に避けるのは難しいですが、便利な関数を知っておくだけでも大きな助けになります。
ぜひ積極的にMathfを使いこなして、より効率的な開発に役立ててみてください。
📣おしらせ!
Unity Asset Storeで BLACK FRIDAY セール が準備中です。
300以上の人気アセットを50%オフで購入するチャンス。
フラッシュセールでは最大95%オフも?