はじめに
パズルゲーム開発中にinspectorに表示されるPosition(Vector2)とConsoleで出力したfloat値が違うことに気付きました。何でなんだろう?
問題
例)
Vector2 pos = new Vector3(-2.46, -4.46f);
Debug.log("pos : " + pos);
出力)
pos : (-2.5, -4.5)
勝手に小数第1位を切り上げされた?!
結論
float値をConsoleに出力するときはVectorのToStringメソッドが勝手に小数点1まで切り上げしてるらしいです。
解決
float値のみ出力する
例)
Debug.Log(pos.x);
Debug.Log(pos.y);
出力)
-2.46
-4.46
桁数を指定する
例)
Debug.Log("pos : " + pos.ToString("F2"));
出力)
pos : (-2.46, -4.46)
Reference