```using UnityEngine;

public class PaperAirplane : MonoBehaviour
{
    // Flugzeugparameter
    public float wingArea;
    public float crossSectionArea;
    public float mass;
    public float liftCoefficient;
    public float dragCoefficient;

    // Umgebungsparameter
    public float airDensity = 1.225f; // Luftdichte bei Meeresspiegel und 15 °C

    // Flugzeugbewegungen
    public float yawAngle;
    public float pitchAngle;
    public float rollAngle;

    private Rigidbody rb;

    private void Start()
    {
        rb = GetComponent<Rigidbody>();
        rb.mass = mass;
    }

    private void FixedUpdate()
    {
        float velocity = rb.velocity.magnitude;

        // Berechnung der Kräfte
        Vector3 liftForce = CalculateLiftForce(velocity);
        Vector3 dragForce = CalculateDragForce(velocity);
        Vector3 gravityForce = CalculateGravityForce();

        // Anwendung der Kräfte auf das Flugzeug
        rb.AddForce(liftForce);
        rb.AddForce(dragForce);
        rb.AddForce(gravityForce);
    }

    private Vector3 CalculateLiftForce(float velocity)
    {
        float lift = 0.5f * airDensity * Mathf.Pow(velocity, 2) * wingArea * liftCoefficient;
        Vector3 liftDirection = Vector3.Cross(rb.velocity, transform.right).normalized;
        return liftDirection * lift;
    }

    private Vector3 CalculateDragForce(float velocity)
    {
        float drag = 0.5f * airDensity * Mathf.Pow(velocity, 2) * crossSectionArea * dragCoefficient;
        Vector3 dragDirection = -rb.velocity.normalized;
        return dragDirection * drag;
    }

    private Vector3 CalculateGravityForce()
    {
        return Vector3.down * mass * Physics.gravity.magnitude;
    }

    public void SetYaw(float yawInput)
    {
        yawAngle = yawInput;
    }

    public void SetPitch(float pitchInput)
    {
        pitchAngle = pitchInput;
    }

    public void SetRoll(float rollInput)
    {
        rollAngle = rollInput;
    }
}
```

Dieser Code erstellt eine Klasse PaperAirplane, die du auf deinem Papierflieger-GameObject als Skriptkomponente anbringen kannst. Füge einfach die benötigten Parameter wie Flügeloberfläche, Querschnittsfläche, Masse, Auftriebs- und Luftwiderstandsbeiwert hinzu.

In Unity musst du sicherstellen, dass dein Papierflieger-GameObject über eine Rigidbody-Komponente verfügt, um die Physiksimulation zu ermöglichen.

Beachte, dass dieser Code keine Steuerung für das Flugzeug enthält. Du musst zusätzlichen Code schreiben, um die Eingaben (z. B. Tastatur, Gamepad) zu verarbeiten und die Gier-, Nick- und Rollwinkel entsprechend anzupassen.
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence