Philone117 Geschrieben 25. Juli 2021 Melden Share Geschrieben 25. Juli 2021 Hallo zusammen, ich baue mir gerade ein 2D Jump&run game und habe ein Problem mit meinem Gegner Objekt. Der Player kann den Gegner besiegen, wenn er ihm auf den Kopf springt. Der Gegner beginnt auf den Player schießen, sobald der Player den Trigger Collider (Circle Collider) des Gegners berührt. Mein Problem: Wenn der Player diesen Collider berührt und man dann versucht auf den Gegner zu springen, springt der Player ganz weit in die Höhe, sobald der Player diesen Collider wieder verlässt springt er wieder ganz normal. Bisher hat mir keine Lösung aus dem Internet geholfen. Vielleicht hat hier jemand eine Idee für mich. Vielen Dank. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 25. Juli 2021 Melden Share Geschrieben 25. Juli 2021 Also ein Trigger ändert nichts an irgendwelchen physikalischen Dingen, außer du machst im Code etwas! So wie du das beschreibst, muss im Code etwas passieren wenn du in den Tigger rein kommst und auch wenn du ihn wieder verlässt. Oder es doch kein Trigger. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 25. Juli 2021 Melden Share Geschrieben 25. Juli 2021 Ich vermute stark, dass dein Raycast (oder was auch immer du als Ground Check benutzt) den Trigger trifft und du deshalb als Grounded zählst, bis du den Trigger verlassen hast. Du springst also in jedem Frame ein bisschen weiter. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Philone117 Geschrieben 15. August 2021 Autor Melden Share Geschrieben 15. August 2021 Gibt es eine Möglichkeit einen Trigger Collider zu ignorieren? Wenn mein Player den Trigger Collieder vom Enemy nicht beachten würde, müsste mein Problem gelöst sein. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MichaelH Geschrieben 15. August 2021 Melden Share Geschrieben 15. August 2021 "Ich vermute stark ..." hat Sascha schon geschrieben. Um dir weiterzuhelfen solltest du mal was von deinem Code zeigen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Philone117 Geschrieben 15. August 2021 Autor Melden Share Geschrieben 15. August 2021 //Player Script bool isGrounded = false; private void OnTriggerStay2D(Collider2D collision) { isGrounded = true; } private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.tag == "Platform") { isGrounded = true; } } private void OnTriggerExit2D(Collider2D collision) { isGrounded = false; } Sobald ich den Trigger Collider vom Enemy berühre und dann springe, bin ich noch immer in einem Trigger Collider und daher wir meine "isGrounded" Variable nicht mehr "false" bis ich wieder draußen bin. Mein Player kann immer wieder springen auch wenn er in der Luft ist, solange er im Enemy Collider ist. Daher meine Überlegung: Wenn der Player den Trigger Colider vom enemy ignorierren würde, sollte es gelöst sein. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 15. August 2021 Melden Share Geschrieben 15. August 2021 Warum reden wir hier von Triggern? Böden sind in der Regel keine Trigger, sondern undurchlässige Collider. Warum checkst du in OnTriggerEnter den Tag, in OnTrigger Stay aber nicht mehr? Zusätzlichen Code zu schreiben, um diesen oder jenen Collider zu ignorieren, ist ein fieser Workaround, den du nicht machen solltest, solange das eigentliche Problem noch ganz woanders liegt. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.