2017-10-29 2 views
0

Ich versuche, ein Objekt an die Mausposition zu verschieben. Aber es gibt mir einen großen x-Wert wie 300, aber an dieser Stelle ist die x-Position des vorgestellten Objekts -4.Mausposition in Einheit

rigidBody.velocity = new Vector3(Input.mousePosition.x, EndPointY, 0)*4; 

Also wie bekomme ich die aktuelle Mausposition?

Danke ..

Antwort

2

, dass die aktuelle Position des Mauszeigers ist. Das Problem besteht darin, dass sich Ihre Objekte in Weltkoordinaten befinden und die Maus Bildschirmkoordinaten verwendet.

Sie müssen die Mausposition mithilfe von Camera.ScreenToWorldPoint() konvertieren.

1

Input.mousePosition gibt Ihnen die Position der Maus auf dem Bildschirm (Pixel). Sie müssen diese Pixel unter Verwendung von Camera.ScreenToWorldPoint() in Welteinheiten umwandeln.

Sie können verfolgen this link zu lernen, wie man ein 3D-Objekt mit der Maus ziehen oder Sie können diesen Code kopieren, um ein Objekt von der aktuellen Position an die Mausposition zu verschieben.

//the object to move 
public Transform objectToMove; 

void Update() 
{ 
    Vector3 mouse = Input.mousePosition; 
    Ray castPoint = Camera.main.ScreenPointToRay(mouse); 
    RaycastHit hit; 
    if (Physics.Raycast(castPoint, out hit, Mathf.Infinity)) 
    { 
     objectToMove.transform.position = hit.point; 
    } 
}