Frage von Player894 17.05.2012

Unity Flugsimulator mit Maussteuerung

  • Hilfreichste Antwort von GameplayGuy 13.08.2012
    1 Mitglied fand diese Antwort hilfreich

    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 von Player894 17.09.2012

    siehe oben

Du kennst die Antwort? Frage beantworten
Bitte noch eine Antwort ... Frage erneut stellen

Verwandte Fragen

Fragen Sie die Community –

anonym und kostenlos!