Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

28.10.2012, 11:20

Unity3d Rennspiel Problem (Das Auto kippt dauernd um)

Hallo

Ich bin seit einiger Zeit dabei ein Autorennspiel mit Unity3D zu Programmieren. Inzwischen ist es schon möglich den Wagen zu steuern. Allerdings gibt es dabei ein Problem, der Wagen kippt bei höheren Geschwindigkeiten in Kurven dauernd um. Woran könnte dies liegen?

Ich benutze Unity 3.5
Dieser Satz ist eine Lüge!

MrZylox1998

Treue Seele

Beiträge: 186

Wohnort: Bayern

Beruf: Schüler(9.Klasse)

  • Private Nachricht senden

2

28.10.2012, 11:37

vlt findet jemand schneller die lösung wenn du z.b. einen teil des Quellcodes schreibst
Jetzt -- ist schon vorbei.

Rechtschreibfehler sind Spezialeffekte meiner Tastatur!

3

28.10.2012, 11:44

Mein (noch sehr kurzer) Quellcode:

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");
}
Dieser Satz ist eine Lüge!

4

28.10.2012, 13:24

Ich vermute, dass der fehler beim rigidbody.centerOfMass.y = 0; liegt. Du musst mal ein bisschen mit den werten spielen, dann sollte dein Auto eig nicht mehr umkippen. Du setzt nämlich den Schwerpunkt deines Autos nach unten, wenn du ihn weiter nach oben setzt sollte dein Auto nicht mehr kippen. Ich bin mir aber nicht sicher. Warte lieber bis sich ein Unity kenner gemeldet hat ;)

Zitat

Das programm, dass ich eben geschrieben hab ließ sich ohne einen einzigen Fehler kompilieren und und funktioniert so wie es soll. Das macht mir Angst, da ist was Faul

FSA

Community-Fossil

  • Private Nachricht senden

5

28.10.2012, 14:02

Denk mal nach. Wenn dein Massenmittelpunkt auf der Höhe 0 ist, ist das so als ob ein dünner Faden die Karosserie ist und der Massenmittelpunkt ein Amboss. Jetzt stell dir das ganze mal in einer Kurve vor ;)

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

6

28.10.2012, 14:38

@tobi98: Ich hab nun ein bisschen rumprobiert, wenn ich zb. den Wert 3 eingebe kippt der Wagen sofort nach hinten. Wenn ich den Wert -3 eingebe kippt er sofort mach vorne. Jedoch überschlägt er sich dann immernoch so schnell.

Könnte es vielleicht helfen den Mittelpunkt etwas über die Z oder die X Achse zu verschieben?
Dieser Satz ist eine Lüge!

FSA

Community-Fossil

  • Private Nachricht senden

7

28.10.2012, 15:33

Dann mach y 0 und z auf 3.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

8

29.10.2012, 14:07

Bei Unity beschreibt die Y-Achse die Achse nach oben. Solange du das nicht geändert hast, wäre das mit Y also richtig. An sich kommt es da auch auf den Mittelpunkt deines Fahrzeugs an. Dein Wert muss also an diesen angepasst werden. Ich würde schätzen, dein Schwerpunkt sollte einigermaßen zentral liegen. Dann musst du natürlich auch gucken, dass dein Fahrzeug ein passendes Gewicht hat. Damit solltest du auch ein wenig rumspielen. Wenn dein Fahrzeug zu leicht ist, dann fällt es natürlich auch schnell um. Weiterhin könntest du die Rotation auf der X und der Z Achse begrenzen. Dann kann dein Fahrzeug aber natürlich allgemein nicht mehr kippen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

9

01.11.2012, 13:27

Danke, nun funktioniert es. Das Problem war die Z Achse, ich habe den Z Wert nun auf 0.07 gestellt und nun klappt es.
Dieser Satz ist eine Lüge!

Quastl

Frischling

Beiträge: 8

Wohnort: Wien

Beruf: Grafiker/Webdesigner

  • Private Nachricht senden

10

29.11.2012, 10:41

Folgendes noch, was mir aufgefallen ist:

Der Schwerpunkt ist die eine Sache, eine andere ist die Lenkung selbst.
Falls du deinen Wagen mit der Tastatur steuerst, dann ist die Achse "Horizontal" bei Tastendruck 1 und ohne 0 - sprich Voll oder nix! Das bedeutet, dass dein Wagen jedesmal bei Tastendruck die Räder VOLL einschlägt. Das würde bei einer gewissen Geschwindigkeit auch in der realen Welt ein Auto umschmeissen. Es gibt in Unity die möglichkeit eine WheelFrictionCurve zu simulieren. Damit lässt sich die Haftung der Räder simulieren - auch seitlich. Default ist die auf 100%, also es gibt nicht mal das geringste Rutschen. Wie man damit umgeht, das siehst du in einem Tutorial auf Youtube. Such dort mal nach "Hummelwalker".

Werbeanzeige