Unity Flugsimulator mit Maussteuerung

... komplette Frage anzeigen

1 Antwort

Prinzipiell ist das recht einfach. Dein Flugzeug braucht nen Rigidbody (Gravity aus). Dann schreibst du eine Script-Komponente, die diesen Rigidbody steuert:

float flightSpeed = 50; // gewünschte Geschwindigkeit
float acceleration = 10; // wie schnell beschleunigen
float pitchSpeed = 1; // wie schnell nach vorne/hinten kippen
float yawSpeed = 1; // wie schnell nach links/rechts drehen

Update()
{
  // die aktuelle Geschwindigkeit berechnen
  var currentSpeed = transform.InverseTransformDirection(rigidbody.velocity);

  // zu langsam? beschleunigen
  if(currentSpeed < flightSpeed)
    rigidbody.AddRelativeForce(Vector3.forward*acceleration, ForceMode.Acceleration);

  // Steuerung auslesen
  var pitch = Input.GetAxis("Mouse Y") * pitchSpeed;
  var yaw = Input.GetAxis("Mouse X") * yawSpeed;

  // nach vorne/hinten kippen
  rigidbody.AddRelativeTorque(Vector3.right*pitch, ForceMode.Acceleration);
  // links/rechts drehen
  rigidbody.AddRelativeTorque(Vector3.up *yaw, ForceMode.Acceleration);
}

Das hab ich jetzt nicht getestet, aber es sollte dir zumindest schonmal die richtige Richtung weisen. Wenn das mit nach vorne/hinten kippen in die falsche Richtung geht, musst du nur pitchSpeed auf -1 ändern.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?