Jump to content
Unity Insider Forum

Verständnis Frage Mouse Position


SyntaxTalkstoMe

Recommended Posts

Salve,

In dem Sidescroller den ich grade baue, soll die Spielerfigur Feuerbälle schießen können. Der Ausgangspunkt soll dabei natürlich der Spieler sein.

Um die Mouse Position abzufragen, hatte ich

Vector2 mousePosi = Input.MousePosition;

 

Diesen Vector Wert, wollte ich dann der Startposition hinzuaddieren. Irgendwie hatte sich dass dann so überhaupt nicht so funktioniert, wie ich es wollte.

Dann hatte ich gegoogelt und fand diese Lösung

            Vector3 worldMousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);

 

Jetzt frage ich mich, wo jetzt da genau der Unterschied sein soll?  Die Szene hat ja ein Koordinatennetz. Und es spielt ja eigentlich keine Rolle wo die Kamera ist, die Koordinaten sind ja unabhängig. 

Vielleicht hab ich auch eine völlig falsche Vorstellung von der Sache.

Evtl kann mir jemand da den Unterschied erklären.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Input.mousePosition ist die Position der Maus auf dem Bild in Pixeln. Die untere linke Ecke ist (0, 0) und wenn du in Fullscreen auf einem FullHD-Bildschirm spielst ist oben rechts (1920, 1080).

Wenn die Kamera sich in deiner Szene bewegt, ändert sich an dieser Definition nichts. Wenn du sie 10m weiter nach rechts verschiebst, dann ist unten links immer noch (0, 0). Allerdings zeigt der Mauszeiger jetzt auf eine andere Stelle in der Szene.

Deshalb gibt es ScreenToWorldPosition: Es steckt eine Position auf dem Bild des Spiels in die Kamera, die dann anhand ihrer Position, aber auch ihres Zooms ausrechnet, wo in der Szene sich das gegebene Pixel befindet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...