I have my platformer script, but it runs off of GetAxis("Horizontal"), and GetButtonDown("Jump"). I'm trying to write a script that uses touch to have the movement system of LIMBO on mobile devices. If you tap or maybe swipe(depends on how they both play), you will jump. When you drag/swipe right or left no matter where your finger is on the screen, it would be the equivalent of GetAxis("Horizontal") = 1, or GetAxis("Horizontal") = -1, and when you release your finger it would be like GetAxis("Horizontal") = 1. I was going to manually change the GetAxis("Horizontal") through swipes, but found out you can't do that, so I'm at a loss now. I'm no novice to programming, but I'm not great at coding touch input because it confuses me. If somebody could point me somewhere that could help me do this, or explain to me how it could be done, I would be very appreciative. EDIT: Ok, I did a bit of research and figured out the "How" for the most part, I just need multitouch, and would like to jump on tap, rather than swipe up. I'm assigning the "HorizontalMovement" value to the movement, rather than GetAxis("Horizontal"). This is what I have: Code (CSharp): public void SwipeCheck() { if (Input.touchCount > 0) { Touch touch = Input.touches[0]; switch (touch.phase) { case TouchPhase.Began: startPos = touch.position; break; case TouchPhase.Moved: float swipeDistVertical = (new Vector3(0, touch.position.y, 0) - new Vector3(0, startPos.y, 0)).magnitude; if (swipeDistVertical > minSwipeDistY) { float swipeValue = Mathf.Sign(touch.position.y - startPos.y); if (swipeValue > 0)//up swipe { swipeJump = true; } else if (swipeValue < 0)//down swipe { //Shrink (); } } float swipeDistHorizontal = (new Vector3(touch.position.x,0, 0) - new Vector3(startPos.x, 0, 0)).magnitude; if (swipeDistHorizontal > minSwipeDistX) { float swipeValue = Mathf.Sign(touch.position.x - startPos.x); if (swipeValue > 0)//right swipe { HorizontalMovement = 1; } else if (swipeValue < 0)//left swipe { HorizontalMovement = -1; } } break; } } }