Eine Sache, die für geübte Augen relativ leicht zu erkennen ist, ist dass du Input.GetKey verwendest. Das liefert true, solange die Taste gedrückt gehalten wird, was in FixedUpdate() über mehrere Frames hinweg passieren kann. Benutzer hier besser Input.GetKeyDown - das ist nur einen Frame true, und zwar in dem, in dem die Taste gedrückt wird (im nächsten Frame nicht mehr, auch wenn die Taste weiterhin gedrückt gehalten wird).
Also für planet.AddForce(...) wäre das okay, wenn der Planet immer weiter beschleunigen soll. Dann sollte der Wert aber noch mit Time.fixedDeltaTime multipliziert werden, damit die Beschleunigung nicht abhängig von der Framerate wird.
Ah, okay, was ich auch sehe: Du hast in Start():
planet = GetComponent<Rigidbody>();
sonne = GetComponent<Rigidbody>();
Schubhinten = GetComponentInChildren<ParticleSystem>();
Das überschreibt dir natürlich planet, sonne und Schubhinten, falls du diese über den Inspector im Editor zugewiesen hast. Da würde ich lieber die Zuweisungen im Editor machen - so, wie es da jetzt steht, zeigen planet und sonne immer auf das gleiche Objekt, was ziemlich sicher nicht das ist, was du willst.
Um Genaueres sagen zu können, müsste ich mir mal das Projekt ansehen und es selbst ausprobieren - aber vielleicht hilft das ja schon ein wenig?
|