2

我正在尝试使用 C# 在 Unity 中获取单击的确切位置,但我不知道如何确定它。我尝试使用 raycast,我得到了一个非常准确的位置,但它只是四舍五入到小数点后一位。这对我来说有点太大的错误。那么我怎样才能得到一个完全准确的位置呢?

我的代码如下:

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 回答