Rotierende Reifen und Folgung der Maus
Wie ich bereits im letzten Eintrag geschrieben habe kommt nun endlich mal wieder ein wenig Spielkram mit der Unity Game Engine. Für unser nächstes Lab war es unsere Aufgabe bestimmte Elemente zu animieren und Partikel Filter zu setzen.
Die Aufgaben waren dieses Mal nicht ganz so mathematisch, jedoch war ein gewisses Verständnis von Matrizen und Vektoren wichtig. Der Panzer der oben auf dem Bild zu sehen ist wurde uns von unsererm Lehrer zu Verfügung gestellt. Er kann ganz normal über WASD gesteuert werden – jedoch drehen sich die Räder nicht. Also die erste Aufgabe: Animiere die Rotation der Panzer-Reifen (natürlich in der richtigen Richtung abhängig vom User-Input).
Die Aufgabe war recht schnell umzusetzen, da eine ähnliche Methode bereits für die Rotation des gesamten Panzers existiert. Entscheidend war es hierbei den Winkel aus Input * Bewegungsgeschwindigkeit * Zeit des letzten Aufrufs zu berechnen. Dieser Winkel wird dann in der richtigen Koordinate in einer Euler-Funktion eingesetzt.
Um den Winkel auf die einzelnen Räder zu transformieren, wird über eine Liste iteriert, die die Räder enthält. Das Ergebnis für das vordere Rad sieht dann folgendermaßen aus:
Als nächstes mussten wir das Geschützrohr animieren. Und zwar sollte es der Bewegung der Maus folgen. Hierfür wird ein unsichtbarer Strahl, sogenannter Ray von der Kamera zu der Mausposition auf den Boden gebeamt. Die dadurch entstehende Koordinate auf dem Boden kann dann ausgelesen und zu einem weiteren Winkel umgerechnet werden. Der Winkel wird dann auf einer Axe fixiert, damit sich das Rohr nur in der 2D-Ebene bewegt und schon folgt das Rohr der Maus.
Ziemlich cool eigentlich. Hat auch wieder Spaß gemacht. Ich hoffe das bis hierhin meine Implementation größtenteils der Lösung entspricht. Als nächstes sollten wir noch ein Partikel System implementieren, womit Explosionen animiert werden können. Aber darüber vielleicht im nächsten Eintrag mehr!
No Comment