2017-05-31 4 views
1

Momentan arbeite ich an einem vernetzten 2d Plattform Spiel.Kollision zwischen Box Collider 2D und Polygon Collider 2D funktioniert nicht

Mein Player ist ein leeres Objekt, das meinen aktuellen Grafiken usw. als Elternteil dient. Das leere Objekt hat eine rigidbody (3d) angehängt, da es eine benötigt, um die configurable joint Komponente zu verwenden (Hinweis: Ich bewege meinen Player um diesen steifen Körper zu verwenden) .Der Spieler Körper jedoch, ein Kind, um die Grafiken, hat eine box collider 2d daran angehängt, wie es nach allem ist es ein 2D-Spiel und muss mit anderen 2D-Objekten kollidieren.

Meine Plattformen haben polygon collider 2d s (die mit einem Plattform-Effektor verbunden ist, wenn das erwähnenswert ist).

Nun, obwohl beide meine Spieler Körper (die ein Kind zu Grafiken, die ein Kind zu meinem Spieler Objekt ist) und meine Plattformen haben 2d colliders auf sie nicht kollidieren und können einfach ineinander (keiner von ihnen ist markiert als isTrigger).

Um das zu lösen, dachte ich, ich würde eine rigidbody 2D auf den Spieler Körper hinzufügen und sehen, ob das irgendetwas tun würde. Jetzt, nachdem ich die rigidbody 2D Kollisionen hinzugefügt habe funktioniert, aber sobald ich die rigidbody 2D gemacht habe, haben alle Position und Rotation Bedingungen angekreuzt oder sobald ich es kinematic oder static machte es würde aufhören zu kollidieren mit meinen Plattformen. Das Problem ist, dass ich die rigidbody 2Dstatic sein muss oder nicht in der Lage bin, mich zu bewegen, da ich gerade mein Spielerobjekt unter Verwendung des rigidbody (3d) daran angehängt habe und keine zusätzliche Bewegung des Spielerkörpers bei Kollision mit Objekten möchte.

Ich weiß, das ist eine ganze Reihe von Informationen, also wenn Sie Fragen haben oder weitere Informationen möchten, kommentieren Sie einfach und ich werde schnell reagieren. Vielen Dank :-)!

Edit: 2d ray Würfe sind auch nicht in der Lage, die Spielerkörper box collider 2D

Edit 2 zu schlagen: So zu rekapitulieren:

Wenn entweder der Spieler Körper oder die Plattform eine rigidbody 2d hat, die nicht statisch ist (dynamisch) und kann Kollisionen bewegen. Allerdings habe ich derzeit nur einen rigidbody 2D auf meinem Player-Körper, der statisch sein muss (wie zuvor erklärt) sowie eine box collider 2d. Meine Plattform (n) hat derzeit nur eine polygon collider 2d, da ich nicht sehe, warum es eine rigidbody 2D benötigen würde.

+0

Da diese Frage zu C# nicht so viel ist, wie es um die Einheit ist, könnte man über auf https versuchen wollen: // gamedev.stackexchange.com/ –

+0

ja werde ich versuchen ...Obwohl dieses Problem für Coder ziemlich einzigartig ist, denke ich, dass es auch eine geeignete Frage für Stack Overflow ist. @ TimothyGroote – RaZ

+0

Nur um sicher zu sein, können Sie für jedes Ihrer zwei Objekte (Plattform und Spieler Körper) zusammenfassen, wenn sie einen starren Körper haben/sind statisch/sind kinematisch, wenn sie nicht kollidieren? – Isuka

Antwort

1

Ein statischer Collider erkennt die Kollision mit einem anderen Collider nicht, wenn er keinen starren Körper hat, wenn er statisch ist oder einen kinematischen starren Körper hat. Mindestens eines Ihrer beiden Objekte muss nicht statisch sein und einen starren Körper haben, der nicht kinematisch ist, um korrekt erkannt zu werden. Sie müssen also einen Rigidbody2D zu Ihrer Plattform hinzufügen.

Wenn Sie Zweifel haben, warum ein Collider nicht mit einem anderen Collider kollidieren würde, beziehen Sie sich immer auf this page der Unity-Dokumentation, die zusammenfasst, welche Art von Collider mit einer anderen kollidiert.

+0

aber wie ich kann nicht machen Starrkörper meines Spielers Körper nicht-statische Wie sollte ich gehen nicht machen meine Plattformen bewegen sich bei Kollision mit einem nicht statischen starren Körper? (Vielen Dank für Ihre Antwort) – RaZ

+0

Verstehen Sie mich nicht falsch: Der Collider Ihres Spielers kann statisch sein. Sie müssen jedoch lediglich ein Rigidbody2D zu Ihrem Plattformobjekt hinzufügen, ohne es statisch oder kinematisch zu machen. Es sollte so funktionieren. – Isuka

+0

vielen Dank Ich werde versuchen, es zu tun ... (und dann Ihre Antwort akzeptieren) – RaZ

0

Rigidbody2D kann nicht mit Rigidbody3D, ist hier eine Abhilfe kollidieren obwohl

http://answers.unity3d.com/questions/580769/can-rigidbody-2d-collide-with-3d-colliders.html

+0

wieso sollte irgendein Rigidbody2D mit Rigidbody3D kollidieren müssen? – RaZ

+0

Ihre Plattform hat einen Polygon-Collider, der 2D ist und Ihr Player hat Starrkörper3D- und 2D-Collider - was bedeutet, dass sie nicht so weit zusammenarbeiten, wie ich weiß. – Fiffe

+0

oh, ok das fängt an mehr Sinn zu machen ... funktionieren sie immer noch nicht zusammen, obwohl sie nicht auf dem gleichen Objekt sind, wie eines auf dem Elternteil und das andere auf einem Kind – RaZ

Verwandte Themen