2

C# を使用して Unity でクリックの正確な位置を取得しようとしていますが、それを特定する方法がわかりません。レイキャストを使用してみましたが、非常に正確な位置が得られましたが、小数点以下 1 桁に丸められています。私には少し大きすぎる間違いです。では、どうすれば完全に正確な位置を取得できますか?

私のコードは次のとおりです。

RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(holdPosition);
if (Physics.Raycast (ray, out hit, Mathf.Infinity, 1<<15)) {
    Debug.Log(hit.point);
}

(0.5, 1.3, -5.0) のような結果が得られますが、小数点以下 4 桁または 5 桁までの精度が必要です。

4

2 に答える 2

3

実際には、それよりも正確な結果が得られます。コンソールの値は丸められます。実際の浮動小数点値は、より高い精度を持っています。それが何であるかを見たい場合は、次のようなフォーマット指定子を使用できます。

Debug.Log(hit.point.ToString("F4"));

"F4"は、標準の数値書式文字列です。これにより、より正確な値が表示されるはずです。

于 2013-08-19T11:49:57.743 に答える
1
Debug.Log(hit.point.x);
Debug.Log(hit.point.y);
Debug.Log(hit.point.z);

より正確な値を提供します。

于 2014-02-18T05:26:24.660 に答える