- Home /
How can I let my player speed go up and down smoothly?
I'm making a 2D platformer game for android, so I added a joystick to my game to move the player. I didn't want my player to move really slow when the handle of the joystick is only a bit from the centre. So I added a kind of sensitivity to my joystick. But when the handle past the sensitivity value, the player is directly on his full speed. When I release the handle, the player stops immediately with running. Is there a way to let my player go smoothly to its max speed and smoothly back to zero speed?
void Update()
{
Run;
}
private void Run()
{
float runXVelocity;
if (Mathf.Abs(joystick.Horizontal) > 0.35f)
{
runXVelocity = Mathf.Sign(joystick.Horizontal) * runSpeed;
}
else
{
runXVelocity = 0f;
}
float runYVelocity = myRigidbody.velocity.y;
Vector2 runVelocity = new Vector2(runXVelocity, runYVelocity);
myRigidbody.velocity = runVelocity;
}
Answer by unity_-v4z-HsChKdEYQ · Aug 07, 2019 at 07:51 AM
a good way to get gradual movement which ive tried is
float topspeed;
float move;
move = Input.GetAxis("Horizontal");
void FixedUpdate()
{
RigidBody2D.velocity = new Vector2(move * topspeed, RigidBody2D.velocity.y);
)
the float value of move increases gradually based on movement so its pretty organic.
Your answer
Follow this Question
Related Questions
How to change the movement speed of a character 4 Answers
How can I rotate the transform by a specific angle at a certain speed? 2 Answers
How to move and rotate a camera smoothly and simultaneously? 0 Answers
Script Platform to cause death 0 Answers
Is the 2D gameplay tutorial by Graveck Interactive outdated? 1 Answer