Unity 2D, C#: Warum ruckelt der Hintergrund des Spieles?
Moinsen! Ich habe ein Berghintergrund angefertigt (Wie man bei meinem Titelbild sehen kann), dann habe ich hinzugefügt, dass der Hintergrund sich ein bisschen langsamer als der Spieler bewegt.
Bei dem Spieler:
if(Input.GetKey(KeyCode.D)){
transform.Translate(7 * Time.deltaTime, 0, 0);
}
if(Input.GetKey(KeyCode.A)){
transform.Translate(-7 * Time.deltaTime, 0, 0);
}
Bei dem Hintergrund:
if(Input.GetKey(KeyCoed.D)){
transform.Translate(6.5f * Time.deltaTime, 0, 0);
}
if(Input.GetKey(KeyCoed.A)){
transform.Translate(-6.5f * Time.deltaTime, 0, 0);
}
Doch die Berge ruckeln ein bisschen. Soll ich stattdessen bei den Bergen das machen:
public bool Start;
void Start(){
Start = true;
}
void Update(){
Vector2 Position = new Vector2();
if(Start == true){
Position.x = 0.54f;
Position.y = 0.734f;
}
if(Input.GetKey(KeyCode.D)){
Start = false;
Position.x + 6.5f * Time.deltaTime;
}
if(Input.GetKey(KeyCode.A)){
Start = false;
Position.x - 6.5f * Time.deltaTime;
}
transform.position = Position;
}
Grüße, Tjovo studios.
1 Antwort
Ich kann kein Unity, aber ich versuch's mal.
Du hast da stehen "KeyCoed.D" (zwei Buchstaben vertauscht). Ich vermute im echten Code steht es richtig.
Du fragst bei "Bei dem Spieler:" und "Bei dem Hintergrund:" zwei Mal dieselben Tasten ab. Kannst du das auf 1x reduzieren?
if(Input.GetKey(KeyCode.D)){
transform1.Translate(7 * Time.deltaTime, 0, 0);
transform2.Translate(6.5f * Time.deltaTime, 0, 0);
}
if(Input.GetKey(KeyCode.A)){
transform1.Translate(-7 * Time.deltaTime, 0, 0);
transform2.Translate(-6.5f * Time.deltaTime, 0, 0);
}
Denn wenn du die Eingabe an zwei Stellen prüfst, ist vermutlich Time.DeltaTime auch immer anders. Daher vllt das Geruckel.
Ich hab's außerdem abgeändert auf transform1 und transform2 weil's ja verschiedene Objekte sind. Ich weiß leider nicht, wie du an dieser Code-Stelle an beide rankommst.
Nein, aber eine bessere Lösung habe ich leider nicht. Warte mal ab, ob noch jemand anderes hilft. Wenn nicht, kannst du die Frage ja nochmal reinstellen.
Meinen Sie z.B. so (Mir fällt nichts anderes ein):
Spieler:
Hintergrund:
Aber das ändert logischerweise auch nichts.