Unity 3D-Tutorial: #41 – Collisions – Kollisionen auswerten
Dieser Artikel gehört zu einer ganzen Tutorial Serie. Hier gelangt Ihr zu der Artikelübersicht: Unity 3D Tutorial Serie .
Nachdem wir im letzten Teil dafür gesorgt hatten, dass unser Auto beim Bremsen auch Bremsspuren erzeugt, werden wir in diesem Teil dafür sorgen, dass unser Wagen mit seiner Umwelt reagiert.
Dafür werden wir Kollisionen mit anderen Objekten auswerten und Crash-Sounds abspielen.
Tutorial-Inhalt
Das Abspielen eines Crash-Sounds ist im Grunde ganz einfach. Denn Unity3D bietet neben den Audio-Feautures, mit denen Ihr kinderleicht Audio in Eure Games integrieren könnt(mehr dazu in dem Unity-Tutorial: #12 – Sound mit AudioSource und Audiolistener ) auch noch die Funktion OnCollisionEnter, die bei Kollisionen ausgelöst wird.
Mit diesem Duett ist das Umsetzen der Aufgabenstellung dieses Tutorials relativ einfach.
Allerdings müssen hierfür einige Vorbereitungen gemacht werden, die ich in diesem Tutorial erläutere. Zuvor kommt aber noch eine kleine Ergänzung zum letzten Tutorial.
Denn einige von Euch wollten wissen, wie man die Bremsspuren so zeichnet, dass diese auch wirklich unter den Reifen erscheinen. Dieses Positionieren erkläre ich noch einmal kurz bevor ich dann auf die Kollisionen zusprechen komme.
Video-Tutorial
Viel Spaß mit diesem Tutorial!
Habt Ihr Fragen? Dann habt Ihr unten natürlich wieder die Möglichkeit diese zu stellen!
Download
Wie in dem Video bereits angekündigt könnt Ihr nun hier das Sound-File der Kollision herunterladen. Natürlich könnt Ihr auch irgendein anderes Sound-File nutzen (eine große Auswahl an FX-Sounds findet Ihr in meinem Blog-Artikel Webseiten mit kostenlose Sound-Dateien).
Aber bevor Ihr lange sucht, könnt Ihr eben auch diese hier nehmen : crash-laut .
In Folge 42 geht es dann um ein typisches Verhalten in Rennspielen. Wir werden nämlich eine First Person Kamera integrieren, bei der es so wirkt als säßen wir selbst in dem Auto. Zudem werden wir natürlich auch noch das Wechseln zwischen den Kamerassichten programmieren.
Hier geht es weiter zum Unity 3D-Tutorial: #42 – First Person / Third Person Kamerawechsel
Hi Carsten,
wieder mal Klasse Tut! 🙂
Ein Problem gibt es aber 😕 bei dem letzten Teil also #40 geht der Link zu dem Script nicht ! 😉
Bitte sieh mal nach…
MfG Felix
Hallo Felix,
der Link ist jetzt korrigiert. Danke für den Hinweis 🙂
Carsten
Moin, Ich bins wieder…habe vor mir ein Flugmodell mit Sketchup zu bauen und mit zwei Propellern zu versehen, welche ich in Unity schon importiert habe. Ich hab schon die Drehzahl und die Umfangsgeschwindigkeit gescriptet, jetzt wollte ich in Unity auch den Schub in Abhängigkeit der Drehzahl machen…habe aber nicht so richtig eine Idee, wie ich es machen könnte. Ich möchte nämlich nicht nur, dass das Flugzeug mit Input.GetAxis(„Horizontal“) sich nach vorne bewegt, wenn die Propeller sich drehen, sondern ich möchte auch gleichzeitig eine entsprechende Kraft nach hinten(also der Schub) haben,damit es realistischer wirkt(und z.B ein leichtes Objekt hinter den Propellern durch den Schub wegfliegt). Ich weiss, dass man in der Realität noch sehr viele andere Dinge berücksichigen muss, aber da das zu schwierig für mich ist, wollte ich den Schub nur in Abhängigkeit der Drehzahl verändern:) Hättest du vielleicht einen Tipp für mich, wie ich da aanfangen könnte, oder meinst du, dass das zu kompliziert sein würde??
Grüße Harris
Also so ganz einfach wird das sicher nicht. Es kommt ja auch darauf an, wie sich das Flugzeug genau verhalten soll. – Die Erdanziehungskraft hast Du ja durch das Rigidbody. Dann brauchst Du eben noch Kräfte, die dich nach vorne und nach oben stoßen z.B. rigidbody.AddForce (0, 10, 5);
Ich hab das jetzt aber nicht getestet und Du wirst die Kräfte natürlich abhängig von den Propellerdrehungen machen bzw. von Deinen Input-Werten usw…
Aber das ist natürlich seeehr grundlegend ohne Feinschliff oder ähnliches 😉
Hallo Carsten,
ich wolllte mal wissen, da du ja seeehr große Kenntnisse in Unity 3D hast, ob du einen entsprechenden Lehrgang dafür gemacht hast. Und eine zweite Frage die etwas Privat ist: Hast du für deinen Beruf studiert?
Hi Felix,
also ich hab zwar studiert (Automatisierungstechnik), wo ich auch programmiert habe und auch mathematische und physikalische Dinge gelernt, die mir hier helfen. Aber einen extra Unity-Kurs hab ich nicht gemacht. Das ist alles nur Lesen, Lernen, Ausprobieren.
Du hast ja Ideen 😉 … Spontan würde ich sagen, dass Du die jedes Objekt, dass sich hinter den Propellern befindet, eine Kraft zuweist(AddForce). Feststellen könntest du dies über Trigger. Trigger werde ich übrigens in meiner kommenden KI-Serie auch behandeln, aber das nur nebenbei 🙂
Hallo Carsten, ich wolllte mal wissen, da du ja seeehr große Kenntnisse in Unity 3D hast, ob du einen entsprechenden Lehrgang dafür gemacht hast. Und eine zweite Frage die etwas Privat ist: Hast du für deinen Beruf studiert?
Also so ganz einfach wird das sicher nicht. Es kommt ja auch darauf an, wie sich das Flugzeug genau verhalten soll. – Die Erdanziehungskraft hast Du ja durch das Rigidbody. Dann brauchst Du eben noch Kräfte, die dich nach vorne und nach oben stoßen z.B. rigidbody.AddForce (0, 10, 5); Ich hab das jetzt aber nicht getestet und Du wirst die Kräfte natürlich abhängig von den Propellerdrehungen machen bzw. von Deinen Input-Werten usw… Aber das ist natürlich seeehr grundlegend ohne Feinschliff oder ähnliches 😉
hehe marisol, du Textklauer 😉
@Harris: Danke für den Hinweis, Harris. Solche Kommentare brauch ich hier in der Tat nicht 🙄
Ja,das glaube ich dir gerne 😉
Ja,das glaube ich dir gerne 😉
Ich habe da noch eine Frage: Wie mache ich es, dass sich der Propeller auf Tastendruck automatisch mit einer bestimmten Geschwindigkeit dreht? Also von null auf die gewünschte Geschwindigkeit beschleunigt?
Viele Grüße und noch einen frohen 2. Wheinachtstag;)
Wer ist denn bitte Glenda Fletcher :S?? Den Kommentar habe ich geschrieben xD.
Ach nein, so meinte ich das nicht…man soll nur aufhören meine Kommentare zu duplizieren xD
Das ist Spam-Bot. der einfach irgendein Kommentar dubliziert, um über den Namen-Link Backlinks zu ergattern 🙄
Achso, na dann ist ja alles in Ordnung 🙂
Ich habe da noch eine Frage: Wie mache ich es, dass sich der Propeller auf Tastendruck automatisch mit einer bestimmten Geschwindigkeit dreht? Also von null auf die gewünschte Geschwindigkeit beschleunigt? Viele Grüße und noch einen frohen 2. Wheinachtstag;)