Servus
Ich bräuchte bitte euer Feedback zu meinem aktuellen Projekt, stehe da wohl gerade etwas auf der Leitung.
Zur Zeit versuche ich, eine direkte arcadelastige Steuerung zu implentieren, wobei Physik eine Rolle spielen wird und ich deshalb auf Rigidbodies zurückgreife. Vorweg wäre zu sagen, daß ich Unity in Kombination mit Playmaker verwende, also State Machines nutze und selbst nicht wirklich viel code. Deshalb geht es mir eher um's Prinzip, wie ich das Ganze am Besten umsetze.
Folgende Methoden habe ich bereits getestet:
A) Rigidbody durch Force an Controller Achse lenken, Auto dreht sich in Fahrtrichtung durch eine smooth look at direction Funktion.
B) Controller Achsen rotieren Auto durch smooth look at direction Funktion, Magnitude als Force nur in lokale Blickrichtung des Autos.
C) Unity Wheel Collider (siehe 2. Teil meines Videos - grober Prototyp)
D) Auto per Character Controller bzw direkt per Translate Funktion steuern, zusätzlich würden wohl noch Raycasts für eine korrekte Rotation anhand der Untergrund Normale hinzukommen.
Vom Feeling der Variante D) war ich nicht überzeugt. C) war ganz nett, da sich die Physik Interaktion durch die Wheel Collider ganz gut anfühlt. Hierbei müsste ich halt noch anpassen, daß sich das Auto beim Lenken nach links/rechts direkt dort hinbewegt. Von Haus aus steuert man mit der horizontalen Achse ja nur die Ausrichtung der Reifen. Bei Variante A) bewegt sich das Auto direkt in die angesteuerte Richtung, so will ich es auch im finalen Spiel. Nur gibt es hierbei keinen Drehpunkt, wenn ich die Richtung wechsle. Deshalb daraus Variante B) gebastelt. Aktuell mein Favorit...fühlt sich ganz gut an (siehe erster Teil im verlinkten Video).
Das Problem dabei: Durch die smooth look at direction Funktion in Richtung der aktiven Controller Achse schaut das Auto zwar in die richtige Richtung, fixiert dabei aber X Y Z (also zB 0/90/0 wenn's nach Rechts schaut). Nötig wäre in dem Fall aber nur Y. Wenn ich nun also zB mit einem Objekt kollidiere, gibt es keinerlei Rotation bzw Schwanken meiner Karre. Siehe erster Teil im Video, direkt nach dem Rumfahren klicke ich auf das Auto und übe eine Kraft am Klickpunkt aus - das Auto hüpft nur starr. Nun werde ich versuchen, die Blickrichtung Rotation nur an der einen benötigten Achse auszuführen, und hoffe, daß keine weiteren Probleme auftreten. Zusätzlich werde ich wohl noch eine Funktion einbauen müssen, um das Auto korrekt zu rotieren (anhand der Untergrund Normale) wenn es zB eine Rampe rauffährt.
Im Netz habe ich auch noch eine Art Hovercraft gefunden, dabei schwebt das Auto auf 4 Raycasts...muss ich mir noch genauer anschauen. Wie würdet ihr das angehen? Wie gehabt, ich werde wohl auf Variante B) aufbauen und herumexperimentieren - aber vl. hab' ich eine einfachere oder bessere Lösung komplett übersehen. Wichtig nur: Direkte Steuerung, Auto fährt also in die angesteuerte Richtung. Physik interagiert oft mit dem Fahrzeug, sollte also nicht beschnitten werden. Schwerpunkt Arcade, Auto kann also zB auch Umfallen, sollte aber nur in Ausnahmefällen geschehen.
Prototyp Video:
https://youtu.be/SgksJBUH1Qg
Wäre für hilfreiche Ratschläge dankbar,
LG Matthias