Frage von Schnewendi, 53

Wie kann man in Unity3D ein Objekt bewegen, mit Berücksichtigung der Rotation?

Der Spieler soll sich in die Richtung bewegen, in die er schaut. Er bewegt sich aber nur entlang der X-Achse der Welt.

Antwort
von dosenbiiir, 42

Das kommt ganz darauf wie du das Objekt bewegst? Bewegst du den Spieler mit einem CharacterController?, über die Transform Komponente?, mithilfe eines Rigidbodys?

Mit Vector3.forward kannst du das Object nach vorne bewegen (Der Vektor zeigt nach vorne in Blickrichtung des Objekts). 

z.B.

 transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);


Den Vektor multiplizierst du dann noch mit einer "moveSpeed" Variable (einfach eine Float oder Integer) um die Bewegungsgeschwindigkeit zu steuern und mit "Time.deltaTime, damit die Geschwindigkeit unabhänig von der FrameRate ist.

LG dosenbiiir

Kommentar von Schnewendi ,

Ich hatte eigentlich vor, Rigidbody.Addforce zu verwenden. Kann man mit Vector3.forward das Objekt auch seit- bzw. rückwärts bewegen?

Kommentar von dosenbiiir ,

Achso ja mit rigidbody.Addforce kannst du das natürlich auch machen ;) Wobei ich persönlich rigidbody.Addforce nicht mag für eine Spieler Steuerung. Aber wenn es funktioniert für dich ist ja gut :)

Rückwärts machst du mit .back und links und rechts mit jeweils .left und .right

Und verwende lieber doch mal transform.forward anstatt von Vector3.forward.  Ich weiß nicht was "besser" ist und ob überhaupt eins der beiden besser ist, aber ich würde dann doch eher transform.forward benutzen.

LG Dosenbiiir

Kommentar von Schnewendi ,

Danke! Habe es geschafft

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten