ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

Mathf.RoundToInt

Unityでfloatを四捨五入してintにするにはMathf.RoundToInt()を使う。

int value = Mathf.RoundToInt( 10.5f );

でこの結果は11となると思いきや、10となった。こういうときはドキュメントをチェック。
Unity - Scripting API: Mathf.RoundToInt
関数の説明は最も近いIntへと丸めるとある。さらに、.5の場合は2つの整数の中間点であり、その場合は偶数のほうを返すとある。

int value = Mathf.RoundToInt(10.5f);
value = Mathf.RoundToInt(9.5f);
value = Mathf.RoundToInt(8.5f);

この結果は上から、10,10,8 となる。
RountToIntは単純な四捨五入ではないので注意。たまたまテストした値が10.5fだったので気が付いたけど、そうでなかったら気が付かなかったかもしれない。