Player Jump when coming down (PLZ HELP)

So my game is 3D, and my player use this code that I made

if (Input.GetKeyUp ("space"))

if (jump == true)
rigidbody.AddForce (Vector3.up * jumpspeed);
jump = false;


the thing I want to talk about is when he falling down, he can move in midair and beside that it just make him fall really slow, I want him to fall to the ground fast.

is Mass is 1 and drag 0 and A Drag 0.05

ps here the move code

if (Input.GetButton ("w")) 
transform.Translate(Vector3(0,0,speed) * Time.deltaTime);
if(Fly == false){

You movement code is overriding the effects of the physics.

transform.Translate(Vector3(0,0,speed) * Time.deltaTime);

In general you want to avoid changing the transform values of a rigidbody under simulation. If your character’s movement is driven by a rigidbody all your controls should also use the rigidbody not the transform.

There are multiple ways of doing so… you could add force in the forward direction instead of translating, you can get the current velocity, add a forward vector to it, and then set that velocity or you can use the MovePosition() function. Which is the right choice depends on how you want your movement to work.

But controlling the movement with the transform and rigidbodies is the start of your problems

If you want the object to fall faster to the ground then increase the gravity

You can change the global gravity using

Physics.gravity = new Vector3(x, y, z);

While 3d rigidbodies have no gravity scale, you can scale up the local gravity using the following:

float scale=1;
void FixedUpdate() {
    if(rigidbody.useGravity) {

Got it to move faster down, thanks you both.