- Home /
How do I stop momentum in 2D sidescroller?
Hi, everyone,
I'm working on a 2D sidescroller, and while the rigidbody movement I'm currently using is mostly good, I notice that my character still moves slightly after I take my finger off the left or right arrow keys. Truthfully it doesn't make a big difference in the game, but I'm wondering if there's a way to turn this off.
Here's part of my movement script:
// FixedUpdate is called on a fixed framerate, and is used to ensure equality through users' differing computer FPS
void FixedUpdate ()
{
// Detects the player's left and right (x axis) input, and returns a float value (between -1 and 1) to be used in the MovePlayer method
float horizontalForce = Input.GetAxis("Horizontal");
// Calls the method that is responsible for moving the player
MovePlayer(horizontalForce);
// Calls the method that is responsible for flipping the player
FlipPlayer (horizontalForce);
}
/// <summary>
/// Moves the player
/// </summary>
/// <param name="horizontalForce">The force of the horizontal input based on pressing the left and right arrows</param>
private void MovePlayer (float horizontalForce)
{
// Moves the player based on horizontal input
playerRigidBody.velocity = new Vector2(horizontalForce * movementSpeed, playerRigidBody.velocity.y);
// Plays the 'Walk' animation when the player moves. Mathf.Abs returns the positive value of horizontalForce so the animator's "speed" float condition is met
playerAnimator.SetFloat("speed", Mathf.Abs(horizontalForce));
}
Answer by LilGames · Sep 25, 2017 at 01:37 AM
What you are seeing is Unity's input simulation of the "return to center" of a joystick. Set the sensitivy of Horizontal and Vertical (for the keyboard input) to 100. For a top-down game, I also set gravity to 100 in the horizontal and vertical.
Thanks for the quick reply. This does stop the momentum, but presents a different problem in that if I tap the movement keys my character goes significantly further than he should. I tried differing sensitivities, but could not find a desirable balance between these two issues.
Yes, you'll have to adjust your movementSpeed accordingly.
Your answer
Follow this Question
Related Questions
PLayer not landing afteer jumping,Player jumping by clicking button 1 Answer
2D player keeps getting dragged to the left for some reason. 0 Answers
climb speed changes drastically when game window is not maximized 1 Answer
How to Apply Animations to Script 1 Answer
Is there a way to make movement feel movement not feel slippery? 2 Answers