如何检测点击的确切位置?

时间:2013-08-19 11:42:27

标签: c# unity3d raycasting

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

我的代码如下:

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位小数。

2 个答案:

答案 0 :(得分:3)

你确实得到了比这更精确的结果。控制台中的值是四舍五入的。实际的浮点值确实具有更高的精度。如果你想看看它是什么,你可以使用格式说明符,如:

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

"F4"standard numeric format string的位置。这应该会显示更准确的值。

答案 1 :(得分:1)

Debug.Log(hit.point.x);
Debug.Log(hit.point.y);
Debug.Log(hit.point.z);

会为您提供更准确的价值。