Launching an object (rigidbody).

I have a turret that fires cannonballs. When the player presses the appropriate button, this line of code is ran:

projectile.rigidbody.AddForce(transform.forward * 2000, ForceMode.Impulse);

Here’s the problem - the cannonball fires just fine, but it takes a very long time before it begins to descend. This causes a huge problem since the cannonballs always fly over the enemy instead of landing near them. I basically want the cannonball to fall faster, but follow a clean arc. Any ideas on how to do this properly?

You can increase the gravity
Physics.gravity = Vector3(0,-something,0);
gravity is applied to the rigidbody every fixed update so it’ll fall faster as the gravity is stronger

or you can increase the mass of the projectile’s rigidbody.

Also your scale of game objects might be too high. But gravity can help offset that. Also make sure your drag is 0

The mass doesnt affect fall speed. Its mainly used for collision detection, things with higher mass move things with less mass more. It does affect force calculation, but not the application of gravity to it.

I would suggest u to alter gravity that is the best one to do, but u will be in advantage if u have some other object that jumps or will be thrown up…

in that case add velocity also in y, it will fall down fast.

I thought the fall speed is affected by mass, my bad…

I would make the cannon force increase the longer the mouse is held down. That way the player can decide the range. Your force is very high so the trajectory is a long ark. If the force you fired the ball with was smaller it wall fall closer to the cannon. This would add an additional element of skill and control to the game. Just my 2 cents.