- Home /
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
Answer by sparkzbarca · Jan 21, 2013 at 02:53 AM
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 :)
Answer by MileSplit · Jan 21, 2013 at 02:51 AM
Got it, but thanks, heres my script,
function FixedUpdate () {
//Move left and right
if(Input.GetKeyDown("d")){
rigidbody.velocity.x = (speed * Time.deltaTime);
}
}
Answer by cdrandin · Jan 21, 2013 at 02:09 AM
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.
I knew that... but thanks my problem is that i want CONTINUOUS movement, i press d and it gets pushed and then pushed again... every frame.
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Alarm lights not changing 1 Answer
How to add a Kinematic Rigidbody to a cube? 1 Answer
Unity3D Pressure Plate request. 3 Answers
Disabling Rigidbody constraints on GameObject that script is attached to 3 Answers