2015-02-24 31 views

回答

1

请记住,鼠标位置是一个2D点,​​但是你投射到一个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; 
} 

请注意,这种方法假设Ray会碰到什么东西。