2017-04-30 2 views
0

Ich habe eine einfache Paddel, die ich versuche, mit der Maus entlang der X-Achse zu bewegen. Momentan bewegt es sich, ist aber relativ weit entfernt von der Maus.Unity Moving Objects mit Input.mousePosition

Ich denke, es ist aufgrund der Tatsache, dass die Hälfte meines Bildschirm ist -7.5 und die andere Hälfte ist 7,5

ich mich gefragt, ob es eine Möglichkeit, dieses Problem zu beheben. Wie Sie aus meinem Code entnehmen können, multipliziere ich mit 16, was die Breite wäre, wenn die andere Hälfte nicht negativ wäre.

kann ich das ganze Drehbuch bewegen, um sie nicht negativ zu machen, so dass ich hatte gehofft, dass es eine Funktion

Vector3 paddlePos = new Vector3 (0f, this.transform.position.y , -0.25f); 
float mousePosInBlocks = Input.mousePosition.x/Screen.width * 16; 

paddlePos.x = Mathf.Clamp(mousePosInBlocks, -7.5f, 7.5f); 

this.transform.position = paddlePos; 

Antwort

1

Mit diesem Code war -

Vector3 paddlePos = new Vector3 (0f, this.transform.position.y , -0.25f); 
float mousePosInBlocks = Input.mousePosition.x/Screen.width * 16; 

paddlePos.x = Mathf.Clamp((mousePosInBlocks - 7.5f), -7.5f, 7.5f); 

this.transform.position = paddlePos; 

Mathf.clamp Funktion nur den Wert innerhalb des minimalen und maximalen Wertebereichs. Sie benötigen den Wert mousePosInBlocks, um den negativen und den positiven Bildschirmbereich zu berücksichtigen.

+0

Das hat das Positionsproblem behoben, aber hat nun ein neues verursacht, da mein Paddel jetzt vom Bildschirm gezogen werden kann? – Jamiex304

+0

versuchen Sie, den Wert zwischen 16 und 15 zu ändern (= 7,5 + 7,5). –

+0

Kann sogar kompilieren, dass: float mouseposInBlocks = Input.mousePosition.x/Screen.width * 15 (= 7.5 + 7.5); – Jamiex304