2015-02-24 32 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會碰到什麼東西。