2015-02-24 2 views
0

Привет, я делаю небольшую игру в игровом движке Unity, и теперь я не могу это сделать, чтобы получить положение y моей мыши, которое будет преобразовано в позицию мира y , Любые идеи для решения этой проблемы (программирование в C#)Позиция мыши Unity в мировом положении, но только Y pos

ответ

1

Помните, что положение мыши является двумерной точкой, но вы проецируетесь в 3D-мир. Таким образом, координата Y мыши зависит от координаты Z позиции в мире. Или, другими словами, высота будет различной в зависимости от глубины точки в мировом пространстве. Если вы хотите, чтобы получить позицию на определенной глубине, вы можете просто сделать:

Vector3 mousePos = Input.mousePosition; 
mousePos.z = <depth>; 
float y = Camera.main.ScreenToWorldPoint(mousePos).y; 

Или вы можете проецировать Ray в мире и использовать позицию первым делом он попадает в глубину, чтобы попробовать на:

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 
RaycastHit hit; 
if (Physics.Raycast(ray, out hit)) 
{ 
    float y = hit.point.y; 
} 

Обратите внимание, что этот подход предполагает, что луч ударит что-то.

Смежные вопросы