Unity - Wie bewege ich ein Objekt mit Toucheingabe?
Wie transforme ich die Position von einem Objekt, wenn ich keine Tastertur und Maus zur verfügung habe, sondern das alles über ein android smartphone durch wischen über den Bildschirm
Normalerweise würde ja sowas, so aussehen in der Update Funktion und ich würde den Input durch Vertical und Horizontal oder durch eine "GetKey" Funktion erhalten.
Aber wie müsste dieser Quellcode aussehen, wenn der einzigste Input das berühren und wischen des Fingers auf einem Smartphone ist?
Weil Vertical und Horizontal ignoriert es bei einer wisch-eingabe...
float xDir = Input.GetAxis("Vertical") * speed * Time.deltaTime;
float zDir = Input.GetAxis("Horizontal") * speed * Time.deltaTime;
moveVector = new Vector3(zDir, xDir, 0);
transform.Translate(moveVector);
1 Antwort
Stelle dir doch mal vor du würdest das mit der Maus machen. Was brauchst du als erstes?
Maus Button gedrückt halten. Richtig
Was brauchst du jetzt?
Messen in welche Richtung die Maus bewegt wird. Richtig.
Wie messe ich das? Ich muss die Maus Position speichern, wo ich den ersten klick gemacht habe und kann jetzt von dort aus die distanz, auch delta genannt messen.
Das jetzt übertragen auf das zu bewegende Objekt ist dann der letzte Schritt.
Das, was OctoMan geschrieben hat, ist eigentlich genau die richtige Erklärung, was du tun musst. :-)
das habe ich doch schon versucht:
https://forum.unity.com/threads/how-do-i-fix-my-camera-movement-control-android-phone-c.964418/
ich habe schon ein tutorial befolgt wo sowas machte und dieses touchen ist ganz komplett anderst aufgebaut
ich hatte es letzte woche mit dem beispiel probiert doch raus kam ein haufen Kaos:
https://youtu.be/rDJOilo4Xrg
Wenn du mir was zusammen basteln könntest oder eine art erklärung wie man das anordnung könnte als touch dan wäre das sehr hilfreich. weil ich versuche mich daran täglich seit dem 29. August u nd jedes mal vergebenst.