Why is my projectile not moving?

Don’t read emotion into posted technical information. It won’t be helpful to you in any way, I promise you. In fact, it will hold you back, waste your time typing unnecessary text, and also make other unwilling to assist you, so don’t do that to yourself. It’s not fair to you.

What Mel summarized for you is just what is already in the documentation, which apparently you missed reading. If you are using the physics API, use it correctly. Manipulating the Transform completely and utterly bypasses the physics API because… it’s NOT the physics API!!

In summary:

With Physics (or Physics2D), never manipulate the Transform directly. If you manipulate the Transform directly, you are bypassing the physics system and you can reasonably expect glitching and missed collisions and other physics mayhem.

This means you may not change transform.position, transform.rotation, you may not call transform.Translate(), transform.Rotate() or other such methods, and also transform.localScale is off limits. You also cannot set rigidbody.position or rigidbody.rotation directly. These ALL bypass physics.

Always use the .MovePosition() and .MoveRotation() methods on the Rigidbody (or Rigidbody2D) instance in order to move or rotate things. Doing this keeps the physics system informed about what is going on.

With a wheel collider, use the motor or brake torque to effect motion.

1 Like