- Home /
Rigidbody Player AddForce issue
I am making a simple player controller using a rigidbody and AddForce to control him. The game is first person and I am running into an issue of moving the player. When I turn the camera even slightly, Force gets added at an angle that is not the player's forward.! I have tried using both AddForce(transform.forward) and AddRelativeForce(Vector3.forward) but both produce the same result. The problem only happens while the player is already moving, and you turn the camera. If you move from a stationary position, you move in the intended direction.
I am also running into a problem where I cannot add a ForceMode in the AddForce. If I do the player does not move.
A picture is attached to show the Forward movement issue.
Answer by Kayac-TrungDV · Dec 11, 2014 at 12:58 AM
You can use rigidbody.MovePosition instead. (http://docs.unity3d.com/ScriptReference/Rigidbody.MovePosition.html) This way you get more controllable character. Is there any special reason to use force?
$$anonymous$$ove Position works, Its just a little more work to get it to use the Player's forward.
Did you try remove all forces at rigidbody before add new force? (When turn camera)
rigidbody.velocity = Vector3.zero;
Thanks, I got it figured out. Accepted your answer! Thanks again!
I think you acutally upvoted the answer and not accepted it :P
Answer by nufam · Nov 04, 2016 at 10:25 AM
I think you didn't take the direction of the camera into count.
Vector3 desiredMove = cam.transform.forward Input.getAxis("Horizontal") + cam.transform.right Input.getAxis("Veritical");
Your answer
Follow this Question
Related Questions
How can I change the "forward" direction of my model? 5 Answers
add force in camera direction 1 Answer
How do you AddForce to a rigidbody2D in the direction of a joystick? 0 Answers
is there any better way to move the character than rigidbody.addRelativeForce? 1 Answer
rotating ray with player rotation. 2 Answers