- 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
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                