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

1 Antwort

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

Schnewendi 
Fragesteller
 11.06.2016, 18:43

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

0
dosenbiiir  11.06.2016, 20:27
@Schnewendi

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

0