I'm making an endless runner in which you chase a bus, so I need to keep the same distance between the player and the bus, but the jumping kills the momentum and eventually the bus gets away. Any suggestions? Here's the script for the player: Code (CSharp): using UnityEngine; public class PlayerController : MonoBehaviour { public float moveSpeed; public float jumpForce; private Rigidbody2D myRigidbody; public bool grounded; public LayerMask whatIsGround; private Collider2D myCollider; private Animator myAnimator; // Start is called before the first frame update void Start() { myRigidbody = GetComponent<Rigidbody2D>(); myCollider = GetComponent<Collider2D>(); myAnimator = GetComponent<Animator>(); } // Update is called once per frame void Update() { grounded = Physics2D.IsTouchingLayers(myCollider, whatIsGround); // Movment myRigidbody.velocity = new Vector2(moveSpeed, myRigidbody.velocity.y); if(Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0)) { if (grounded) { myRigidbody.velocity = new Vector2(myRigidbody.velocity.x, jumpForce); } } myAnimator.SetFloat ("Speed", myRigidbody.velocity.x); myAnimator.SetBool ("Grounded", grounded); } } Script for the bus: Code (CSharp): using UnityEngine; public class BusMovement : MonoBehaviour { public float moveSpeed; private Rigidbody2D myRigidbody2; // Start is called before the first frame update void Start() { myRigidbody2 = GetComponent<Rigidbody2D>(); } // Update is called once per frame void Update() { myRigidbody2.velocity = new Vector2(moveSpeed, myRigidbody2.velocity.y); } } Thanks : )