Skripting in Unity Grundkurs

Grundlegende Bewegungsmöglichkeiten: Rigidbody

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Eine weitere Möglichkeit, Objekte zu bewegen, führt über "Rigidbody". Das ist sozusagen die Physik-Engine von Unity3D.
07:05

Transkript

Eine Bewegung ist eine Positionsänderung, das ist soweit klar. Das man die Positionsänderung nicht nur hier, über Transform.Position machen kann, vielleicht noch nicht so ganz. Denn das, was wir hier per Hand machen können, ist nicht der einzige Weg, nämlich hier Werte zu verändern, und damit unsere Figur zu bewegen, sondern es gibt auch noch den Weg, über die Komponente Rigidbody das mache ich jetzt mal, ich füge den Rigidbody hier unserem Menschen hinzu, und sage dann, bitte benutze keine Gravity, weil sonst würde unser Mensch gleich irgendwie runterfallen, umfallen, das möchten wir jetzt in diesem Moment nicht. Und die Werteveränderung hier oben, bedeutet ja immer irgendwie doch, ich verändere manuell etwas, ich lasse das Ganze zwar über ein Script laufen, aber ich gehe ganz nah an diese Werte heran, beziehungsweise ich nehme diese Werte her, und verändere sie irgendwie per Hand, weil ich ja immer sage, addiere mir das und das bitte drauf, oder subtrahiere mir das und das, und vielleicht möchte man die Bewegung eher über die Physik-Engine lösen, über diesen Rigidbody Und genau das werden wir mit einem neuen Script tun, Player_Move mache ich hier jetzt mal aus, dieses Script bewegt nämlich genau den Charakter hier über die Achsen, und dann mache ich ein neues Script über Create, C# Script, das ich nenne Player_Slide, denn die Bewegung, die wir jetzt gleich machen, ist nicht unbedingt eine Bewegung an sich, sondern ein Sliden, und dieses Script öffnen wir, die Fehlermeldung, beziehungsweise Warnmeldung bestätigen wir mit der Entertaste, und jetzt gehen wir nicht an die Transform-Komponente, wie hier im Player_Move, transform.position, sondern, referenzieren, oder beziehungsweise greifen zu auf den Rigidbody. Und dieser Rigidbody, und wenn ich das hier klein schreibe, dann beziehen wir uns immer auf den Rigidbody, auf dem eben dieses Script liegt. Wenn hier jetzt kein Rigidbody draufliegen würde, dann hätten wir ein Problem, dann würde unser Script eine Fehlermeldung rausgeben, aber, dieser Rigidbody ist hier drauf, und liefert uns damit auch gewisse Dinge zurück, beziehungsweise stellt uns gewisse Dinge zur Verfügung, und wenn wir den Access Modifier, hier den Punkt anwenden, sehen wir auch, wir können hier eine ganze Menge machen. Und da gibt es auch den Befehl AddForce, den machen wir jetzt noch zur Funktion, beziehungsweise wir benutzen Klammer auf, Klammer zu, und finalisieren diese Zeile mit einem Semikolon. Da fehlt jetzt natürlich noch was, und zwar welche force, also welche Kraft, denn auf unseren Rigidbody ausgeführt, oder beziehungsweise angewendet werden soll. Und wir sehen hier schon, dass muss ja irgendwie ein X,Y und Z-Wert sein. Und was ist immer dann wichtig, wenn es um X,Y und Z-Werte geht? genau, ein vector 3. Der hat nämlich drei Werte, die wunderbar mit X,Y und Z zusammenpassen. Und jetzt werde ich hier mal eine Kraft auf der X-Achse hinzufügen, zum Beispiel 2 und Y und Z bekommen den Wert 0. Und wir werden mal schauen, ob diese eine Zeile jetzt schon ausreicht, um irgendeine Art von Interaktion, beziehungsweise Auswirkung in Unity zu bewirken, und dazu zoome ich jetzt mal ein bisschen hier raus, und weise hier Player_Slide unserem Human, unserem Player_Human zu. Dann gehe ich in den Playmode, und wir sehen, aha, es passiert was. Und wenn ich dieses Script jetzt ausstelle und wir verfolgen unseren Human, unseren Player_Human mal, dann sehen wie auch hier unten, ganz langsam und allmählich wird er etwas langsamer. Das passiert jetzt natürlich automatisch, das Ganze wollen wir in Abhängigkeit unserer Tastatureingabe machen, und dazu gehen wir noch mal in das Script, und ich klaue mir hier, aus Player_Move jetzt mal die Bedingungsabfrage raus, füge sie hier in Update ein, und dann tausche ich die 2 aus, gegen (Input.GetAxis("Horizontal"), denn hier, hinter diesem ganzen Ausdruck, steht ja ein Wert, der den Wertebereich 0 bis 1 haben kann, und auch ins Negative 0 bis -1. Dann speichern wir das und testen noch mal in Unity, und sehen, aha, drücke ich die entsprechenden Tasten, dann wird unserem Spieler eine Kraft, beziehungsweise dem Rigidbody auf unserem Spieler, eine Kraft hinzugefügt, und wir sehen auch, dass ich, wenn ich hier nach links drücke, er nicht sofort ganz starr nach links geht, sondern diese Kraft wirklich dynamisch hinzugefügt wird. Und wenn eine Kraft plötzlich in die andere Richtung wirkt, dann müssen sich beide Kräfte erst einmal abbremsen, gegeneinander aufheben, bevor die Kraft in die entgegengesetzte Richtung wirken kann. Und das sehen wir hier, wenn wir die Richtung schnell hin und her wechseln. Und das ist ein Verhalten, was wir jetzt nicht unbedingt steuern. Wir verändern nicht feste Werte und sagen, wenn ich nach links drücke gehst du nach links, wenn ich nach rechts drücke gehst du nach rechts, sondern wir fügen dynamisch eine Kraft auf unseren Spieler aus, beziehungsweise wir wirken sie dynamisch aus, und das was hier passiert, nämlich dass geslidet wird, dass gebremst wird dynamisch, das wird alles automatisch von der Physik-Engine übernommen. Das machen wir nicht, wir sagen nur mit einer Zeile Code, füge bitte eine Kraft hinzu. Und jetzt haben wir eine Möglichkeit gefunden, über den Rigidbody ein Objekt zu bewegen, und damit auch eine sehr, sehr, sehr weiche Bewegung zu realisieren, die unter Umständen vielleicht eher gefällt, als eine sehr strikte, eine sehr harte Bewegung. Das kommt immer darauf an, was Sie umsetzen möchten. Versuchen Sie auch hier vielleicht einmal mit anderen Achsen zu arbeiten, oder den Unity-Mechaniker vielleicht nach oben schweben zu lassen mit Hilfe von AddForce. Hier kann man wirklich sehr viel rumexperimentieren, und dabei wünsche ich Ihnen viel Spaß!

Skripting in Unity Grundkurs

Greifen Sie mithilfe von C#-Skripts dynamisch in Ihr Unity-Projekt ein. Auch Programmier-Neulinge lernen Schritt für Schritt den Einstieg ins Skripting.

4 Std. 50 min (40 Videos)
Derzeit sind keine Feedbacks vorhanden...

Anleitung für Unity 5-Nutzer:

  • Schritt 1: Projekt in Unity 5 öffnen und die Meldung bestätigen, dass das Projekt ein Upgrade bekommt.
  • Schritt 2: Wenn die Meldung kommt, dass die API upgedatet werden muss, diese auch bestätigen

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!