Ich versuche Auto drehen mit HingeJoint
(oder konfigurierbaren Joint) in Unity Game Engine.Ändern der Achse der Scharnierverbindung durch Skript in Unity
Ich habe 4 Räder am Hauptteil mit den Verbindungen befestigt, was gut funktioniert. Jetzt muss ich die Gelenkachse (relativ zum Hauptkörper) mit einem Controller-Skript ändern, um die Räder drehen zu lassen. Es tut was ich brauche, wenn ich den Z-Wert der Achse im Inspector ändere (die Achse relativ zum Hauptkörper rotieren), aber wenn ich versuche, die Z-Achse im Skript zu ändern, werden die Dinge verrückt. Scheint mir, dass die Achse relativ zum übergeordneten Körper ist, bevor Sie das Spiel ausführen, aber wenn Sie es ausführen, wird die Achse möglicherweise absolut oder etwas.
Ich habe versucht, eine Antwort für einige Zeit zu finden, aber ich konnte nichts in Bezug auf die Achse finden.
Nur was ich gefunden habe, ist über TargetRotation
(auf konfigurierbaren Gelenk), was ist eigentlich nicht das, was ich suche, weil ich glaube, dass Sie einige Grenzen in einer anderen Achse setzen müssen, damit es funktioniert, so dass die bereits elastischen Gelenke wackle noch mehr. Offensichtlich muss das Ergebnis so streng wie möglich sein. Immer noch, wenn Sie eine Idee haben, wie man das mit TargetRotation
macht, lassen Sie es mich bitte wissen, weil ich noch nicht einmal in der Lage war zu erkennen, wie es tatsächlich funktioniert.
Ich glaube, die Frage ist ziemlich einfach, aber wenn Sie denken, dass die Frage nicht klar genug ist, lassen Sie mich wissen, damit ich einige Bilder für eine bessere Erklärung hinzufügen werde.
EDIT: Nun wurde so hier vorgeschlagen ein paar mehr Infos Zugabe gehen wir:
Wie u seine einfache Box mit 4 Zylindern sehen mit configurablejoints an der Box angebracht . Alle Elemente sind auf der gleichen Wurzelebene und haben feste Körper.
In roten Kreisen können Sie verschiedene Achsenrotationen sehen, die durch Ändern der Achsen-Z-Werte (von -1 bis 1) im Inspektor gemacht werden, was genau ich per Skript tun muss, um das Fahrzeug zu lenken.
Unfortunatelly wenn I-Achse Z-Controller in Skript wie das hinzufügen:
float steering = Input.GetAxis("Horizontal");
configurableJoint.axis = new Vector3(configurableJoint.axis.x, configurableJoint.axis.y, steering);
Also, was ich möchte, ist eine Idee, wie diese Funktion erreicht werden könnte, wie gut als jemand, der mir erklären kann, wie die Achsen der Gelenke funktionieren würden, wäre nett.
Vielen Dank im Voraus für jede Anstrengung
Fügen Sie weitere Informationen zum angezeigten Verhalten hinzu. Screenshots und Code-Snippets helfen anderen Benutzern dabei, Ihnen zu helfen. –
Ich glaube wirklich nicht Scharnier Gelenke können auf diese Weise verwendet werden Sie wissen, Mann? Es ist einfach nicht das, wofür sie überhaupt sind. Ganz einfach, Sie benutzen einfach eine Transformation.dh die Radbaugruppe ist ein Kind des Chassis. das ist alles dazu. (nur '.Rotate' das Kind verwandeln - keine große Sache. – Fattie
Es ist bemerkenswert, dass es unglaublich komplizierte Technik ist, ein Auto-Rig zu bauen - es dauert 1-2 Mann Jahre Arbeit. So ziemlich jedes Auto-Projekt in Unity verwendet nur die berühmte "Edy's Vehicle Physics" aus dem Asset-Store (oder einer von Edys neuen Konkurrenten !!) Es ist so schwierig, dass es wirklich keine Wiki-, Community-, usw. Bemühungen gibt.Außerdem hat sich mit Einheit 5 seit sie komplett geändert "Rad-Collider" geändert (die früher unglaublich bizarr waren und jetzt nur noch bizarr sind). – Fattie