Philone117 Geschrieben 14. August 2021 Melden Share Geschrieben 14. August 2021 Hallo zusammen, zurzeit entwickle ich ein 2D JumpNRun Spiel indem ich auch Moving Platformen nutzen möchte. Ich habe es geschafft die Platformen korrekt zum laufen zu bringen und auch der Player bleibt korrekt drauf stehen. Leider läuft mein Player nicht mehr richtig (sehr abgehackt und nicht flüssig) auf den Platformen. Sobald mein Player die MovingPlatform berührt wird er zum Child und die Platform zum Parent. Manchmal (3 mal von 10 Versuchen) funktioniert alles wie gewünscht. Hat jemand eine Lösung für mein Problem ? Vielen Dank. //Player Skript private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.tag == "XMovingPF") { isGrounded = true; transform.parent = collision.gameObject.transform; if (rightButtonPressed || leftButtonPressed) { transform.parent = null; Debug.Log("Kein Parent "); } } } private void OnTriggerExit2D(Collider2D collision) { isGrounded = false; if (collision.gameObject.tag == "XMovingPF") { transform.parent = null; } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 14. August 2021 Melden Share Geschrieben 14. August 2021 Du musst dir das Timing deiner Plattform und deines Characters anschauen. Die sollten z.B. beide in FixedUpdate laufen. Dann ist zu bedenken, dass Updates von Transform-Matrizen und Collidern nicht sofort passieren, sondern am Ende des Frames kollektiv. Man könnte mit Physics.SyncTransforms arbeiten, aber das ist halt immer so ein dickes Ding. Sinnvoller ist es, mit z.B. Script Execution Order dafür zu sorgen, dass der Spieler sich vor der Plattform bewegt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.