Unity 3D Tutorial-Serie: #16 – Vollbremsung mit WheelCollidern
Dieser Artikel gehört zu einer ganzen Tutorial Serie. Hier gelangt Ihr zu der Artikelübersicht: Unity3D Tutorial Serie .
Endlich geht es weiter mit der Entwicklung unseres 3D Games unter Unity.
In diesem Tutorial wollen wir dem Wagen unseres Rennspiels beibringen eine echte Vollbremsung mit blockierenden Reifen, aufgewirbelten Staub und quietschenden Reifen hinzulegen.
Inhalt dieses Unity Tutorials
Nachdem wir letztes Mal das Particle System von Unity kennen gelernt hatten wollen wir nun endlich unsere Vollbremsung programmieren, bei der wir dieses Particle System dann auch später einsetzen werden.
Bei der Vollbremsung ist es natürlich wichtig, dass die Reifen bzw. die WheelCollider blockieren und sich abrupt nicht mehr drehen. Aber, und das wird das Interessante an der Sache werden, soll der Wagen trotztdem weiter rutschen. Und genau hier liegt die Schwierigkeit, denn schließlich bewegt der Wagen sich ja durch die „Drehung“ der WheelCollider.
Und auch ein seitliches Rutschen soll dabei möglich sein. Denn wenn der Wagen während des Bremsens zum Beispiel eine Kurve fährt, ist dies natürlich auch notwendig.
Das Video-Tutorial
Dieses Tutorial ist wieder etwas länger geraten. Und so gibt es wieder eine Doppelfolge. Aber ich hoffe, das macht nichts.Viel Spaß!
Video Teil 1
Video Teil 2
Wie hat Euch die Folge gefallen? Hinterlasst doch einfach unten ein Kommentar!
Download
Da das Script wieder etwas komplexer geworden ist, möchte ich Euch an dieser Stelle wieder eine akutelle Version des Driving-Scripts zum herunterladen bereitstellen. Hier geht es zum Download: Driving-Script-Tutorial-16.
Wie geht es weiter?
Da bereits mehrere Leser/Zuschauer mich auf die Gestaltung des Automodells angeschrieben haben, werde ich demnächst noch eine Folge drehen, in der ich auf Materialien und Shader eingehen werde. Aber das nur erstmal vorweg.
In der nächsten Folge werden wir uns dann um den aufgewirbelten Staub kümmern, der bei der Vollbremsung entstehen soll.
Hier geht es zum siebzehnten Teil Unity3D – Staubwolke mit Particle System .
Gruß Carsten
Hui,
ganz schön viel Info *schwitz*. Das werde ich mir am WE nochmal genauer ansehen (Mist, heute ist ja erst Monntach). Aber danke für die Tutorials!:smile:
WOW, Pro Woche ein Tutorial, bis jetzt konstant durchgehalten! Super Arbeit muss ich echt mal sagen!! 🙂
Vielen Dank! Ja, ich tu mein Bestes 😉
Ist ganz schön viel, aber ich wollte mal erwähnen das die angehängte Download-Datei gar nicht alles beinhaltet. (zumindest bei mir) Es fehlt so gar noch der Teil, der für den Sound zuständig ist.
Ist das nur bei mir so, oder etwa bei allen?
Hallo Jonny,
vielen Dank für den Hinweis. Ich hatte eine falsche Script-Version verlinkt. Jetzt sollte aber alles drin sein 🙂
Gruß Carsten
Hallo ich wieß dies ist das falsche tut aber in den anderen kann ich leider nichts mehr hineinschreiben=(
Ich habe ein Problem mit dem Tutorial 11 und zwar steht da immer flWheel Collider „of Driving “ has not being assigned
das macht es bei jedem also auch bei fr und so weiter. Wenn ich dan meine wheel colliders dort reinzihe in die Felder die ja jetzt Vorgegeben sind geht es bis auf das letzte nämlich rrWheelCollider auchw ne ich diesen in das Feld ziehe die Fehler meldung geht nicht weg und mein auto bewegt sin kein cm
Ps: Finde es beib diesem tut etwas schade das man auf einmal alles neu machen muss also dieses FlWheelCollider und so und das das halt nicht richtig erklärt wird sondern man aufeinmal ins kalte Wasser geworfen wird, find ich für anfänger ein bisschen shcwer zumindest für mich.
Ich hoffe du/ihr könnt mir trotzdem helfen
und die anderen tutorials waren ja super deswegen is jah nich so schlimm =)
Hallo Philipp,
es tut mir leid, wenn Dir das Umbenennen nicht klar war. Also im Grunde muss Du immer „leftWheel“ durch „flWheelCollider“ ersetzen. Mit dem rechten WheelCollider machst Du das genauso. Das kannst Du übrigens wie bei jedem Textprogramm am einfachsten über „Search“ und dann „Replace“ machen.
Zu Deinem Problem: Ich vermute mal, dass Du die Variablen im Script nicht überall gleich geschrieben hast, z.B. „flWheelCollider“, „flWheel Collider“ und „FLWheelCollider“. Kannst Du das mal prüfen?
Gruß Carsten
Hallo Carsten,
ich habe da ein Problem beim Tut #3… Und zwar fliegt mein auto zwar und habe auch den JS so geschrieben wie du das hast, aber steuern lässt sich mein Flitzer nicht xD
Woran könnte das liegen?
LG Verena
Hallo Verena, Dein Auto fliegt??? Das sollte es eigentlich nicht 😉
Funktioniert nur das Lenken nicht oder auch das Beschleunigen? Und gibt es irgendwelche Fehlermeldungen?
Wenn das Script stimmt, hast Du das Script überhaupt auf Dein Auto und die richtigen WheelCollider auf die entsprechenden Variablen gezogen?
Gruß Carsten
Also es fällt halt auf das terrain 😉
Es funktioniert weder Lenken noch Anfahren…
Das Script ist aufs Auto gezogen und die WheelCollider auf die Variablen gezogen..
LG
Dann poste mal das Script, damit ich mal schauen kann 🙂
Hmm, mein Auto hat nen Linksdreh 😉 nwenn ich ganz normal gerade aus fahre, will der immer nach links…. alles so gemacht wie du es gesagt hast. Habe ja auch bissel Ahnung vom Proggn, bis jetzt noch nichts gefunden was es sein könnte 😉
Ok Fehler wahrscheinlich gefunden 🙂
Der eine Wheelcollider st einfach bischen höher bzw. niedriger 😉
var leftWheel : WheelCollider;
var rightWheel : WheelCollider;
var maxTorque= 260.0;
function Start () {
rigidbody.centerOfMass.y = 0;
}
function FixedUpdate () {
leftWheel.motorTorque = maxTorque * Input.GetAxis(„Vertical“);
rightWheel.motorTorque = maxTorque * Input.GetAxis(„Vertical“);
leftWheel.steerAngle = 10 * Input.GetAxis(„Horizontal“);
rightWheel.steerAngle = 10 * Input.GetAxis(„Horizontal“);
}
LG Verena
@Christoph: Dann ist ja gut 🙂
@Verena: Das Script sieht so ganz gut aus.
1) Hast Du das Script auch auf Dein Auto gezogen?
2) Sind die WheelCollider auf Deine Variablen Deines Scripts gezogen?
3) Berühren die WheelCollider das Terrain, wenn der Wagen aufkommt?
Hey Danke 🙂
An 3. lag der Fehler 😉
Na wunderbar 🙂
Meine Räder Blockieren nicht 😀 bremsen dafür aber 😉
Na dann, auf an die Fehlersuche 😀