2016-03-28 15 views
1

Für das Spiel, das ich versuche zu bauen, möchte ich meine Spieler Objekte bewegen, wenn 'W/A/S/D' gedrückt gehalten werden.Einheit 2D Charakter Bewegung

Zum Beispiel, wenn ich nach rechts bewegen wollte, musste ich 'D' gedrückt halten.

Ich habe versucht mit Rigidbody2D.AddForce, aber ich mag nicht das Gefühl der Bewegung, die es schafft.

Ich bin auf der Suche nach sofortigen Bewegung und stoppen, im Gegensatz zu jeder Beschleunigung/Entschleunigung.

Irgendwelche Ideen?

Danke !!! Alex

+0

Versuchen ändern Suche in 'transform.position' – rhughes

+0

TY: D ja ich erhielt es dank Ihnen – Alex

Antwort

0

Sie können so etwas versuchen. Rufen Sie in der Update-Methode die Bewegungswerte von WASD-Schlüsseln ab, indem Sie den folgenden Code verwenden.

MovementInputValue = Input.GetAxis ("VerticalAxis_name"); 
TurnInputValue = Input.GetAxis ("HorizontalAxis_name"); 

Verschieben Sie dann in der FixedUpdate-Methode das Objekt mit dem folgenden Code.

// For moving 

    Vector3 movement = transform.forward * MovementInputValue * m_Speed * Time.deltaTime; 
    rigidbody.MovePosition(rigidbody.position + movement); 

//For turning 
    float turn = TurnInputValue * m_TurnSpeed * Time.deltaTime; 
    Quaternion turnRotation = Quaternion.Euler (0f, turn, 0f); 
    rigidbody.MoveRotation (rigidbody.rotation * turnRotation); 

Dieser Code für die 3D-Bewegung geschrieben ist, aber man kann es leicht zu 2D

+0

danken greenPadawan !! ! Wirklich zu schätzen die Hilfe: D Wird es heute Abend ausprobieren! – Alex

+0

Alter, danke !! Das ist genau die Bewegung, die ich suche: D, danke eine Tonne, Alex – Alex

Verwandte Themen