Jump to content
Unity Insider Forum

Position ermitteln wo der Spieler zuletzt gedrückt hat


texaskeks2oo

Recommended Posts

  • texaskeks2oo changed the title to Position ermitteln wo der Spieler zuletzt gedrückt hat
vor 11 Minuten schrieb chrische5:

Hallo 

 

Du könntest einfach immer den letzten Klick speichern. Wenn er dann erneut klickt, überschreibst du das dann. Somit hast du immer die Position des letzten Klicks. 

 

Christoph 

Naja ich möchte ja sobald der Spieler im Spiel irgendwo hingedrückt hat das da dann ein Objekt spawnt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dann brauchst du einen Raycast.

Dein Mausklick ist ja eine 2D-Information, da der Mauszeiger auf dem Bildschirm ist. Er klebt dabei über einem Pixel in der 3D-Welt. Wie weit der Punkt in der 3D-Welt hinter dem Mauszeiger liegt, ist dabei eine Information, die du irgendwie definieren musst. Und das machst du mit einem Raycast, der von der Kamera aus, vom Pixel unter dem Mauszeiger losgeschossen wird und die 3D-Welt irgendwo trifft. Da, wo getroffen wird, willst du dein Objekt hintun.

Was für einen Raycast du nehmen willst, kommt auf dein Spiel an. Hast du eine Szene voller Collider? Dann ginge ein Physics.Raycast. Wenn du einfach nur eine Grund-Ebene hast, dann ginge auch ein Plane.Raycast.

Der Code sieht so aus:

// Damit definierst du den Ursprung und die Richtung deines Strahls für den Raycast
var ray = Camera.main.ScreenPointToRay(Input.mousePosition);

// Damit "schießt" du den Strahl - die if-Bedingung trifft nur ein, wenn etwas getroffen wurde
if (Physics.Raycast(ray, out var hit))
{
  Debug.Log("Getroffen: " + hit.point);
}

Das Debug.Log kannst du dann durch ein Instantiate ersetzen, um dein Objekt zu spawnen. Einen Mausklick-Check außenrum, sowas wie...

if (Input.GetMouseButtonDown(0))

... und das ganze in Update und fertig ist der Kuchen!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...