ForceMode.Impulse unregelmäßig Unity?
Ich versuche ein Golf Game zu erstellen für einen Game Jam, doch irgendwie ist die Geschwindigkeit/Force welche auf den Ball(in meinem Fall ein Auto) addiert/gedingst wird oftmasl unterschiedlich.
Die erste Schüsse sind meistens sehr schwach und schnell gezogene Bälle(also wenn man die Maus schnell nach hinten schiebt und schnell loslässt) (man schießt den Ball indem man nach hinten zieht) haben eine sehr viel höhere Geschwindigkeit.
Um kurz ein bisschen tiefer ins Detail zu gehen, es wird der Start Punkt, wenn die Maus über dem Ball schwebt und gedrückt wird, und die End-Position beim loslassen genommen und dann in die entgegengesetzte Richtung die Geschwindigkeit hinzugefügt. Die Geschwindigkeit wird durch dir Distanz der beiden Punkte gemessen und es wird noch eine Rechnung gemacht, um sicherzustellen as die Geschwindigkeit nicht zu lange ist.
Vielen Dank schon einmal für die Hilfe. Hier das Script: https://pastebin.com/N9Bke7sZ
Dankeschön : )
Hier noch einmal einen anderen Link zu einer besseren Seite, wo das Script auch colorcoded ist. Dankeschön für jegliche Hilfe : )
1 Antwort
Es scheint mir nur logisch zu sein, das Force immer anderes ist, ungeachtet des Modes. Warum?
https://docs.unity3d.com/ScriptReference/Rigidbody.AddForce.html
Der erste Wert is die eigentliche force.
public void AddForce(Vector3 force, ForceMode mode = ForceMode.Force);
Die force in deinem Script bestimmt sich durch die distance, die du danach nochmal mit einem force Wert Multiplizierst. Da die Distanz vermutlich veränderbar ist, verändert sich entsprechend die force auf den Rigidbody. Wäre die Force immer gleich, sollte der Impulse auch immer die gleiche Stärke haben.
Impulse besagt nur wie der ForceMode ausgeführt wird:
https://docs.unity3d.com/ScriptReference/ForceMode.html
- Force Add a continuous force to the rigidbody, using its mass.
- Acceleration Add a continuous acceleration to the rigidbody, ignoring its mass.
- Impulse Add an instant force impulse to the rigidbody, using its mass.
- VelocityChange Add an instant velocity change to the rigidbody, ignoring its mass.