Jump to content
Unity Insider Forum

Player springt sehr sehr hoch wenn er den Trigger Collider des Gegners berührt


Philone117

Recommended Posts

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

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

  • 3 weeks later...
//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

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

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...