Box Collider in Unity

Unity Physics Tutorial – Collider und Events (2/6)

Gefällt Dir der Artikel? Dann teile ihn doch, um diese Informationen auch anderen zugänglich zu machen!

Seiteninhalt

Im letzten Teil des Unity Physics Tutorials hast du eine allgemeine Übersicht zum Thema Physik erhalten. Außerdem haben wir uns verschiedene Physik-Engines für Unity angesehen. Eine sehr wichtige Komponente, um all das umzusetzen, ist die Rigidbody-Komponente. Dabei können verschiedene Eigenschaften (Masse, Schwerkraft, …) festgelegt werden, die ich dir im letzten Teil erklärt habe.

In diesem Teil wollen wir uns weitere Komponenten ansehen, die für die Umsetzung von physikalischen Effekten in virtuellen Umgebungen wichtig sind. Eine dieser Komponenten ist die Unity Collider-Komponente und die verschiedenen Collision und Trigger Events…

Übersicht Unity Physics Tutorial

Kollisionen in Unity

Die Kollisionserkennung ist ein wichtiges Element für Unity Physics. Sie ermöglicht die Bestimmung, wann und wie GameObjects miteinander interagieren. Durch die Kollisionserkennung können Objekte auf realistische Weise aufeinander prallen und unterschiedliche Reaktionen zeigen.

Hinweis: Mit dem ultimativen Unity Cheat Sheet erhältst du einen detaillierten Überblick über Tipps & Tricks mit dem Umgang von Unity. Sichere dir jetzt das Cheat Sheet, um deine Anwendungen noch einfacher und effektiver erstellen zu können!

Unity Collider-Komponente

Um Kollisionen in Unity zu ermöglichen, benötigen GameObjects sogenannte Collider-Komponenten. Unity Collider definieren die Form und Größe eines Objekts und steuern so die physikalischen Interaktionen zwischen GameObjects. Unity Physics bietet verschiedene Collider-Typen, die jeweils für verschiedene Formen und Anforderungen geeignet sind.

Dazu zählen unter anderem:

  • Box Collider: Dieser Collider beschreibt eine einfache rechteckige Kollisionsform. Er ist gut für Objekte wie Wände, Kisten oder Plattformen geeignet .
  • Sphere Collider: Dieser Collider beschreibt eine Kugel-Kollisionsform und eignet sich für runde oder sphärische Objekte wie Bälle oder Kugeln.
  • Capsule Collider: Ein Capsule Collider repräsentiert eine zylinderförmige Kollisionsform mit abgerundeten Enden. Er kann gut für Charaktere oder Säulen verwendet werden.
  • Mesh Collider: Dabei wird die tatsächliche Mesh-Geometrie eines GameObjects als Kollisionsform verwendet. Somit können komplexe Formen für die Kollision verwendet werden. Allerdings ist diese Form auch rechenintensiver als die Verwendung einfacher Collider-Typen.

In der unteren Abbildung erkennst du im Inspector einen Box Collider. Du kannst diesen ganz einfach über AddComponent → Box Collider zum jeweiligen GameObject hinzufügen. In diesem Beispiel eignet sich ein Box Collider, da der Karton eine rechteckige Box darstellt. Über Edit Collider kannst du die Form betrachten und auch verändern.

In Unity sind Collider also Komponenten, die an GameObjects angehängt werden, um die Kollisionsgeometrie zu definieren. Sie sind in der Anwendung selbst nicht sichtbar, sondern nur für die Physik Engine relevant. Wenn zwei Collider sich zum Beispiel überlappen, führt Unity interne Kollisionserkennungsberechnungen durch und benachrichtigt dann die entsprechenden Rigidbodies, um auf die Kollision zu reagieren.

Box Collider in Unity

Kollisionserkennung und Reaktion

Um den Karton beim Fallen durch die Schwerkraft vom Boden abprallen zu lassen, benötigt auch der Boden einen entsprechenden Unity Collider. Sobald zwei Collider in der Szene miteinander kollidieren, erzeugt die Physik-Engine Kollisionsevents. Unity Physics ermöglicht es, auf diese Ereignisse zu reagieren.

Es gibt verschiedene Möglichkeiten, wie GameObjects auf Kollisionen reagieren können. Um das zu verstehen, betrachten wir die folgende Szene. Dort ist ein Fass auf einer schräg gestellten Palette zu sehen und am Boden befinden sich Kartons. Alle GameObjects besitzen jeweils einen Unity Collider und eine Rigidbody-Komponente. Grundlegend gibt es zwei unterschiedliche Kollisionsevents…

Unity Kollisionserkennung

Unity Collision-Events

Dieses Ereignis tritt auf, wenn zwei Unity Collider miteinander in Berührung treten. Dabei findet ein Aufprall statt und die Collider und GameObjects können nicht überlappen. Die Eigenschaft Is Trigger in der Collider-Komponente muss deaktiviert sein. Starten wir die Anwendung in Unity, so rollt das Fass auf Grund der Schwerkraft über die Palette nach unten und prallt auf die beiden Kartons.

Über ein Skript können zusätzlich dazu bestimmte Aktionen ausgelöst werden, wie zum Beispiel das Verursachen von Schaden oder das Starten von Animationen. Hierfür gibt es unterschiedliche Events:

  • OnCollisionEnter(): Dieses Event wird aufgerufen, sobald der Collider vom GameObject Fass den des Kartons berührt.
  • OnCollisionStay(): Anders als zum vorherigen Event wird dieses aufgerufen, solange der Collider vom GameObject Fass den Collider des Kartons berührt.
  • OnCollisionExit(): Dieses Event wird aufgerufen, sobald der Collider vom GameObject Fass den des Kartons verlässt.

Unity Collision-Events

Unity Trigger-Events

Trigger sind spezielle Unity Collider, die nicht zu Kollisionen führen. Es findet somit kein Aufprall statt und die Collider können überlappen. Die Eigenschaft Is Trigger muss hierzu aktiviert sein. Das ist zum Beispiel nützlich für das das Sammeln von Gegenständen. Der Charakter muss dafür durch den Gegenstand laufen können und es darf kein Abprallen entstehen.

Angenommen beide Kartons am Boden sind als static definiert und die Eigenschaft Is Trigger bei der Collider-Komponente ist aktiviert. Starten wir die Anwendung erneut, so rollt das Fass nach unten. Allerdings prallt es dieses Mal nicht an den Kartons ab, sondern rollt hindurch. Über ein Skript lassen sich auch zusätzlich bestimmte Aktionen auslösen, wofür es ebenso Events gibt:

  • OnTriggerEnter(): Dieses Event wird beim Eintritt des Colliders vom GameObject Fass in den des Kartons aufgerufen.
  • OnTriggerStay(): Anders als zum vorherigen Event wird dieses aufgerufen, solange der Collider vom GameObject Fass den Collider des Kartons berührt.
  • OnTriggerExit(): Dieses Event wird beim Austritt des Colliders vom GameObject Fass aus dem des Kartons aufgerufen.

Unity Trigger-Events

Die Kollisionserkennung ist besonders eng mit der Verwendung einer Rigidbody Komponente verknüpft. Rigidbodies sind 3D-Körper, denen physikalische Eigenschaften wie Masse, Geschwindigkeit und Schwerkraft zugewiesen werden können. Wenn ein Objekt mit einem Rigidbody mit Unity Collidern in Berührung kommt, führt das zu physikalisch simulierten Reaktionen.

Im nächsten Teil des Tutorials werden wir auf Physik-Materialien eingehen. Damit lässt sich beispielsweise die Reibung mit dem Boden definieren.

Hinweis: Du möchtest eigene 2D/3D Spiele und Anwendungen erstellen? Dann teste jetzt nobreakpoints Pro. Dort findest du in verschiedenen Online-Kursen und Workshops das nötige Wissen, um deine Ideen in die Wirklichkeit umzusetzen.

Free

Trial

Keine Extra-Kosten.
Jederzeit kündbar.

Bist du bereit atemberaubende Spiele und 3D Anwendungen zu erstellen?

Gefällt Dir der Artikel? Dann teile ihn doch, um diese Informationen auch anderen zugänglich zu machen!

Weitere Blogartikel

Bist du bereit deine eigenen Spiele & Apps zu erstellen?

Teste jetzt alle Online-Kurse mit nobreakpoints Pro und erstelle problemlos deine eigenen 2D/3D Spiele und XR Anwendungen.

Suche

Bist du bereit deine eigenen Spiele & Apps zu erstellen?

Teste jetzt alle Online-Kurse mit nobreakpoints Pro und erstelle problemlos deine eigenen 2D/3D Spiele und XR Anwendungen.