2013-08-19 6 views
2

Я пытаюсь получить точное местоположение щелчка в Unity с помощью C#, но я понятия не имею, как его определить. Я пробовал использовать 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

Thank u !! Ничего себе, теперь я чувствую себя намного лучше! : D – gabrjan

+0

Добро пожаловать. Рад, что помогло. :) Это, по общему признанию, немного удивительно. – Bart

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

Дает вам более точные значения.