Can't use more than one keyboard input at a time?

I am making a FPS style game and I want my character to be able to run and jump. I have the movement working with WSAD and I have the SPACE bar set to make the character jump. The problem is if I hold down W and then hit the space bar nothing happens or it acts like it was trying to jump but doesn’t.

Can Unity only process one keyboard key at a time?

if (Input.GetKey (KeyCode.W) )
		{

			if(feetonground ==true) //only allow control if on ground
				rigidbody.velocity = transform.forward * speed;
		}
		
		if (Input.GetKey (KeyCode.S) )
		{
			if(feetonground==true)
			rigidbody.velocity = transform.forward * -speed;
		}
		
		if (Input.GetKey (KeyCode.A) ) 
		{
			if(feetonground==true)
			rigidbody.velocity = transform.right * -speed;
		}
		
		if (Input.GetKey (KeyCode.D)) 
		{
			if(feetonground==true)
			rigidbody.velocity = transform.right * speed;
		}		
		
		if (Input.GetKeyDown (KeyCode.Space)) 
		{  

			if(feetonground==true)
			rigidbody.velocity=(transform.up/2 +transform.forward) *jumpheight;
		}

The problem is that you are overwriting the rigidbody velocity eachtime you check a key.

For example if you press W and D, what will happen is that you will assign the W velocity as:

// Only moves forward
rigidbody.velocity = transform.forward * speed; 

but then you are overwriting the value with :

// will overwrite the previous statement, moving only right
rigidbody.velocity = transform.right * speed; 

What you have to do is to ADD them each time, For example:

rigidbody.velocity += transform.forward * speed; 

I hope this clears it for you
Good luck!