ThePhil Geschrieben 3. August 2020 Melden Share Geschrieben 3. August 2020 Hallo, ich programmiere gerade ein Spiel in dem ein Ball einen Berg runter rollt. Das Problem ist dass der Ball auf Dauer zu schnell wird. Ich habe dem Ball einen Gravity-Wert zugewiesen. Kann man mithilfe des Skriptes die Geschwindigkeit/velocity beeinflussen bzw. überschreiben? Falls man den die Velocity nur Auslesen kann.. hättet ihr Ideen wie ich den Ball irgendwie verlangsamen könnte? Danke schon mal für Hilfe und Feedback! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
chrische5 Geschrieben 3. August 2020 Melden Share Geschrieben 3. August 2020 Hall Man kann natürlich solche Variablen ändern. Vielleicht wäre es aber sinnvoll an der allgemeinen Gravitation zu drehen. Dann musst du nicht händisch die Geschwindigkeit ändern. Christoph Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 3. August 2020 Melden Share Geschrieben 3. August 2020 Wenn du einen Rigidbody (oder Rigidbody2D) hast, dann kannst du an dem den "Drag"-Wert einstellen. Dieser bremst das Objekt permanent aus, je nach dem, wie doll du ihn einstellst. Ist also möglich, damit so etwas wie Luftwiderstand zu simulieren. Das heißt: Damit beschleunigt dein Ball immer langsamer, bis sich Drag und Gravitation genau ausgleichen und die Maximalgeschwindigkeit erreicht ist. Wenn du das so nicht willst, sondern ein abruptes Aufhören der Beschleunigung möchtest, dann kannst du in der Tat einfach den velocity-Wert des Rigidbodys setzen. Es reicht da z.B. so etwas: public float maxSpeed = 10f; private void FixedUpdate() { rigidbody.velocity = Vector3.ClampMagnitude(rigidbody.velocity, maxSpeed); } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.