- Home /
How to stop player movement variable on collision (when button is still pressed down)
I have made a character controller for my 2D player which utilizes 'movementSpeed' as a float variable which in turn allows for appropriate animations with the exelleration from 0-1 and 1-0.
Once I developed appropriate walls with collisions, I realised that even if the character stops on colliding, the movement variable will still be at full velocity (Still pressing the movement button).
I am wondering how I would be able to make this 'movementSpeed' variable == 0 when on collision since currently if the movement button is pressed down its basically always trying to move in the direction even if its being physically stopped.
Mind my bad explaining, hopefully I got the point across. Here is the Controller code tho.
public class CharacterController : MonoBehaviour
{
public Animator animator;
public float movementSpeed;
public float _speed;
public Rigidbody2D rb;
void Start()
{
Application.targetFrameRate = 144;
}
void Update()
{
Vector3 movement = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0.0f);
movementSpeed = Mathf.Clamp(movement.magnitude, 0.0f, 1.0f);
if (movement != Vector3.zero)
{
animator.SetFloat("Horizontal", movement.x);
animator.SetFloat("Vertical", movement.y);
}
animator.SetFloat("Speed", movementSpeed);
rb.velocity = new Vector2(movement.x, movement.y) * movementSpeed * Time.deltaTime * 60 * _speed;
}
}
P.S - My player animations are based on blend trees utilizing the 'movementSpeed',I have made a character controller for my 2D player which utilizes 'movementSpeed' as a float variable which in turn allows for appropriate animations with the exelleration from 0-1 and 1-0.
Your answer
Follow this Question
Related Questions
,Spawning snow or changing tilesets to snow as the player walks past them 0 Answers
How can i move a 2D ball ? 0 Answers
Why my 2d sprite animation not working as i want? 1 Answer
Left/Right movement 2D game,Why is this code to make my character move left/right not working? 0 Answers
so I'm trying to make a 2D platform but the first animation i make is the only one that registers 0 Answers