質問: hitFPS.point.x) { //処理 } Debug.Log("2 : " + Mathf.FloorToInt(hitFPS.point.x) + ", " + hitFPS.point.x); } ``` Rayがx軸に整数に当たっていれば処理をするようにしています。 Rayがあるオブジェクトに当たっていて、そのX座標が整数の時に呼び出したいのですが、 Debug.Log()の1と2がどちらも同じ数で、整数です。 if()文内はイコール関係が成り立っているのですが、**//処理**が読まれません。 どのような問題が考えられるでしょうか?
回答: `hitFPS.point.x`に端数が入っていませんか? Debug.Logの表示は(この表記だと)小数点第2位が切り上げで表示されますので信用してはいけません。 例えば`Debug.Log(hitFPS.point.x.ToString("F4"));`にすれば小数点第4位まで表示されます。 そもそもfloatを==で比較してもほぼ合致しないので(その旨警告も出るはず)、 両方`Mathf.FloorToInt`するか、`<`や`>`で比較する等してください。