UnityでMathf.Clampを使ったときの挙動

Mathf.Clampはゲームを作るときに便利な関数ですが、境界での挙動がどうなっているかよく忘れてしまいます。

そこで、動作結果をメモしてみようと思います。

float版

float a0 = Mathf.Clamp (0.0f, 3.5f, 5.5f);
Debug.Log ("a0=" + a0);

float a8 = Mathf.Clamp (8.0f, 3.5f, 5.5f);
Debug.Log ("a8=" + a8);

実行結果

a0=3.5
a8=5.5

int版

int b0 = Mathf.Clamp (0, 3, 5);
Debug.Log ("b0=" + b0);

int b8 = Mathf.Clamp (8, 3, 5);
Debug.Log ("b8=" + b8);

実行結果

b0=3
b8=5

リンク

Unity – スクリプトリファレンス: Mathf.Clamp
https://docs.unity3d.com/ja/current/ScriptReference/Mathf.Clamp.html

Unityの最適化に関して参考になりそうな資料

ユニティ・テクノロジーズ・ジャパンより「最適化をする前に覚えておきたい技術」というスライドが公開されました。

【Unity道場スペシャル 2017札幌】最適化をする前に覚えておきたい技術 -札幌編-
https://www.slideshare.net/UnityTechnologiesJapan/unity-2017-80569090

主な内容はUnity Profilerの使い方に関して。

メモ(119ページ辺りから)

  • モバイルゲームではBatch/SetPass数は200辺りまでに
    (同じマテリアルを使ってDynamic Batchingが効くようにすると良いらし)
  • 頂点数は少ない方が良いがモバイルでも数万ポリゴンは余裕

自作ゲームの最適化を考えている人は参考にしてみると良いかもしれません。