2013-08-19 18 views
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位小數的精度。

回答

3

你實際上得到的結果比這更精確。控制檯中的值是四捨五入的。實際的浮點值確實有更高的精度。如果你想看到什麼,你可以使用格式說明,如:

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

"F4"standard numeric format string。這應該會顯示更精確的值。

+0

謝謝你!哇,我現在感覺好多了! :D – gabrjan

+0

不客氣。很高興這有幫助。 :)起初,這確實有點令人驚訝。 – Bart

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

會給你更精確的值。