Help with the update function and rigidbodys

So i would like it to be be that when the d key is held down the object moves. I need to use a rigidbody because i use it for gravity and collision. My problem is that when i press and hold down d it moves… a little and stops. It does NOT continue to move. I double checked that my script was in the update function. Oh and speed is an int variable.

 //Move left and right
    	if(Input.GetKeyDown("d")){
    	 rigidbody.MovePosition(rigidbody.position + Vector3(speed,0,0) * Time.deltaTime);
    	}

Thanks

Rigidbody have applied mass. SO, lets say you want to move a 500 pound car. Will applying 5 units of force move this object? Maybe just a little, but not a lot. So, you need to increase the force in which you move the object. Read the rigid body manual carefully. It is very complex especially if you want to make realistic movements.

getkeydown only triggers once. the moment it is pressed down, it doesn’t trigger again until the button is released and pressed again

if you want to continue to do something while the key is down you need to use

getkey

not getkeydown

mark as answered and have a nice day :slight_smile:

Got it, but thanks,
heres my script,

function FixedUpdate () {
//Move left and right
	if(Input.GetKeyDown("d")){
	rigidbody.velocity.x = (speed * Time.deltaTime);
	}
}