Hi.
So I’m trying to make a 3d Endless Runner and I’ve got a script for switching lanes whenever you press A or D. But what I want is to make it work on mobile, so I need the script to detect when you click on the left side of the screen, or the right side. Swiping left/right would be even better.
Here’s the script that I’ve got for switching lanes:
float input = Input.GetAxis("Horizontal");
if(Mathf.Abs(input) > deadZone) {
if(!didChangeLastFrame) {
didChangeLastFrame = true; //Prevent overshooting lanes
laneNumber += Mathf.RoundToInt(Mathf.Sign(input));
if(laneNumber < 0) laneNumber = 0;
else if(laneNumber >= lanesCount) laneNumber = lanesCount - 1;
}
} else {
didChangeLastFrame = false;
}
Vector3 pos = transform.position;
pos.x = Mathf.Lerp(pos.x, firstLaneXPos + laneDistance * laneNumber, Time.deltaTime * sideSpeed);
transform.position = pos;
How would I make that script work on clicking left/right side of the screen or swiping left/right?
Here’s a little bit of code I’ve got for detecting if you click/tap on the left/right side of the screen:
moveVector.x = Input.GetAxisRaw ("Horizontal") * speed;
if (Input.GetMouseButton (0))
{
// Divide by 2 = right side // Else = left side
if (Input.mousePosition.x > Screen.width / 2)
moveVector.x = speed;
else
moveVector.x = -speed;
}
But the problem with this is that the player moves smoothly, it doesn’t switch lanes like in the first script.
BTW. I’m a beginner at this.