Wie kann ich mein Objekt so bewegen?

1 Antwort

Ohne mich groß mit Unity auszukennen: Kannst du nicht ein Array positionen[] mit drei Positionsvektoren anlegen und dann sowas bauen wie:

static int aktuellePosition = 0;
if(//'A' wird gedrückt && aktuellePosition > 0)
{
  aktuellePosition--;
  // Player auf positionen[aktuellePosition] verschieben
}
else if(//'D' wird gedrückt && aktuellePosition < 3)
{
  aktuellePosition++;
  // Player auf positionen[aktuellePosition] verschieben
}

Ist natürlich nur Pseudo-Code, weil ich die Befehle nicht kenne ;)

statt die aktuelle Position static zu machen, würde ich sie vermutlich ins Player-Objekt packen.


MagicalGrill  14.12.2019, 14:28

PS: Zählen will gelernt sein. Im else if sollte es natürlich lauten:

else if(//'D' wird gedrückt && aktuellePosition < 2)
mondai  18.12.2019, 23:16
@MagicalGrill

Vom Prinzip her ist es so machbar, aber die Linke auf welcher Achse?
Wenn es so gemeint war, würde das in 3D etwa so aussehen.

float[] AchsenPosition = new float[3] { -1.5f, 0, 1.5f };
byte Aktuell = 0;

// Ab hier weiter in void Update() { ... }
if (Input.GetKey(KeyCode.A) && Aktuell > 0) Aktuell--;
else if (Input.GetKey(KeyCode.D) && Aktuell < 2) Aktuell++;

transform.Translate
(transform.position.x,transform.position.y,AchsenPosition[Aktuell] );/*
transform.Translate (new Vector3
(transform.position.x,transform.position.y,AchsenPosition[Aktuell]));*/