2D-Bewegung für 4 Richtungen funktioniert nur Links/rechts
Ich habe ein problem ich möchte, dass meine Spieler bewegen sich in 4 Richtungen: OBEN,UNTEN,LINKS UND RECHTS ... hier ist mein Skript
using UnityEngine;
using System.Collections;
public class MovingPlayer : MonoBehaviour {
float speed = 4f;
//Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.A)) {
transform.Translate(Vector2.right * speed * Time.deltaTime);
}
else if (Input.GetKey (KeyCode.D)) {
transform.Translate(-Vector2.right * speed * Time.deltaTime);
}
else if (Input.GetKey (KeyCode.W)) {
transform.Translate(Vector2.up * speed * Time.deltaTime);
}
else if (Input.GetKey (KeyCode.S)) {
transform.Translate(-Vector2.up * speed * Time.deltaTime);
}
}
}
Und es funktioniert nur für Links und rechts , nicht oben und unten !?
- Vector2.vorwärts existiert nicht für den 2d-Modus ...
- was könnte die "vierte Richtung" in diesen drei.dimensionalen Raum Welt... Zeit?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dieses, es verschiebt das Objekt in Bezug auf die globalen Koordinaten:
Ihrem code verwendet
else if
für alle vier Richtungen. Dies bedeutet, dass der Charakter kann nur in eine Richtung bewegen zu einem Zeitpunkt. Wenn 'A' gedrückt wird, dann werden alleelse
Zweige werden ignoriert. Wenn " D " gedrückt, wird die 'W' und 'S' die Zweige werden ignoriert.Macht es Sinn
else if
beim tauschen zwischen Links und rechts, zwischen oben und unten, da der Spieler sollte nur in der Lage sein zu bewegen, eine Richtung auf einer gegebenen Achse in einer Zeit. Aber die horizontale und vertikale Abschnitte sollten unabhängig sein, wenn die Bedingungen:Ich würde auch empfehlen, sich auf die Eingang Klasse in der unity-Dokumentation. Der input-manager können Sie definieren, input-Achsen (basierend auf Tastatur -, Maus-oder joystick-Eingang), und Lesen Sie Sie als einen kontinuierlichen Wert auf den Bereich [-1, 1]. Einheit Standard definiert zwei Achsen genannte "Horizontale" und "Vertikale", die Lesen die Eingabe von AD-und WS jeweils. Mit virtuellen Achsen, die Sie verwenden können: