Jump to content
Unity Insider Forum

Physics 2D Collider


jayanam

Recommended Posts

Hallo zusammen,

 

ich entwickle gerade ein 2D Spiel in dem es darum geht kleine böse Monsterchen die in einem Spielfeld rumwabern zu boxen und zu teilen (Hit 'n Split), es sieht derzeit etwa so aus:

 

glove_hit.jpg

 

Das blaue Monster hat einen CircleCollider2D und einen Rigidbody2D, der Boxhandschuhe und die Säge Animationen mit jeweils 2D collider. Wenn die Animation des Handschuhs spielt und dadurch das Monster getroffen wird, verhält es sich auch schon wie erwartet: Je nach Treffwinkel wird das Monster etwas nach oben befördert, aber eben nur wenig.

 

Nun meine 2 Fragen:

 

1. Wie kann ich die Kraft beschleunigen in der der Handschuh zuschlägt. Ich könnte einen Force anwenden per Script, aber der Schlag sollte natürlich so berücksichtigt werden (Winkel...) wie es derzeit auch schon passiert, eben nur mit mehr Schmackes:-)

 

2. Wenn das Monster abprallt an den Wänden soll es zurückbouncen, z.B. auch wenn es unten ankommt. Kann man das einstellen, dass es sich wie Gummi verhält (gibt es bei 2D so ein Material oder ähnliches)?

 

Danke Euch für Feedback!

 

Matthias

 

BTW: Das neueste Video zur Erstellung der Tiles und Colider findet Ihr hier:

Link zu diesem Kommentar
Auf anderen Seiten teilen

1. Wie kann ich die Kraft beschleunigen in der der Handschuh zuschlägt. Ich könnte einen Force anwenden per Script, aber der Schlag sollte natürlich so berücksichtigt werden (Winkel...) wie es derzeit auch schon passiert, eben nur mit mehr Schmackes:-)

Wenn du die Bounciness eingestellt hast, erübrigt sich das vielleicht. Aber du kannst natürlich OnCollisionEnter2D benutzen und per Hand nachhelfen.

Wenn ich mich recht erinnere, wird dieses Event ausgelöst, nachdem die Kollision aufgelöst wurde, heißt: nachdem die Richtung des Rigidbodys angepasst wurde. Das bedeutet, dass du ganz stumpf die Geschwindigkeit des Rigidbodys mit einem Wert größer 1 multiplizieren kannst, um mehr Schmackes zu erzeugen.

 

2. Wenn das Monster abprallt an den Wänden soll es zurückbouncen, z.B. auch wenn es unten ankommt. Kann man das einstellen, dass es sich wie Gummi verhält (gibt es bei 2D so ein Material oder ähnliches)?

Jau, und du hast es schon richtig erahnt. Einfach in den Assets Rechtsklick/Create/Physic Material 2D. Einstellungen um Asset vornehmen und es dann in den Collider ziehen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du die Bounciness eingestellt hast, erübrigt sich das vielleicht. Aber du kannst natürlich OnCollisionEnter2D benutzen und per Hand nachhelfen.

Wenn ich mich recht erinnere, wird dieses Event ausgelöst, nachdem die Kollision aufgelöst wurde, heißt: nachdem die Richtung des Rigidbodys angepasst wurde. Das bedeutet, dass du ganz stumpf die Geschwindigkeit des Rigidbodys mit einem Wert größer 1 multiplizieren kannst, um mehr Schmackes zu erzeugen.

 

 

Jau, und du hast es schon richtig erahnt. Einfach in den Assets Rechtsklick/Create/Physic Material 2D. Einstellungen um Asset vornehmen und es dann in den Collider ziehen.

 

okay, danke für den Tip, das mit dem Material klappt wunderbar, ich dachte wenn man diesen AreaEffector2D verwendet dass man dann die Force auf das Objekt ohne Script ausführen kann, aber ich habe noch nicht ganz verstanden wie der verwendet wird.

 

Aber ich muss ohnehin ein Script für die CollisionEnter2D haben denn dort werde ich auch abfragen müssen, unter welchen Umständen denn die Kollision stattgefunden hat, nämlich ob der Handschuh gerade schlägt oder eben nicht. Ich denke hier muss ich den Zustand des Animators auswerten und auch die Phase in der sich die Animation befindet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du die Bounciness eingestellt hast, erübrigt sich das vielleicht. Aber du kannst natürlich OnCollisionEnter2D benutzen und per Hand nachhelfen.

Wenn ich mich recht erinnere, wird dieses Event ausgelöst, nachdem die Kollision aufgelöst wurde, heißt: nachdem die Richtung des Rigidbodys angepasst wurde. Das bedeutet, dass du ganz stumpf die Geschwindigkeit des Rigidbodys mit einem Wert größer 1 multiplizieren kannst, um mehr Schmackes zu erzeugen.

 

 

Jau, und du hast es schon richtig erahnt. Einfach in den Assets Rechtsklick/Create/Physic Material 2D. Einstellungen um Asset vornehmen und es dann in den Collider ziehen.

 

Hallo Sascha,

 

also das sieht nun gut aus, habe mein Vorgehen mal in einem Tutorial zusammengefasst:

 

 

Ich kam am Ende mit einem AddForce für den Rigidbody2d raus mit einer Summe von 2 Vector-Produkten, das fühlte sich so am besten an für den Spielfluß:-)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...