Touch Input, user can touch across the screen, not wanted

Hey !

I’m making a game where the user can move the character by holding down a finger on the screen and move it horizontally, and then the character is moving on the x-axis, so the y-
locked.

The game is 2D, and its mechanic is to evade game objects.
The user gets the option to move the character freely on the x-axis, but I don’t want the players to cheat by for example clicking at 500 units(x-axis) from 0 units, I want to force the player to drag the character around instead of clicking.
The game is developed for Android.

Sorry for my shitty explaination, but I need you guys help.

Code:

if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved /*&& touchPosition.x < (transform.position.x + 1f) && touchPosition.x > (transform.position.x - 1f)*/)
			{
				ChangePosition();
			}

ChangePosition method:

void ChangePosition()
	{
		fingerPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.GetTouch(0).position.x, 450, 5f));
		transform.position = fingerPos;
	}

So I think there is an easy answer for you if I understand your question.

If you take the TouchPhase.Began and cast it to a ray. If the raycast collides with your player character, then go ahead and allow movement, otherwise they will be dragging nothing. Just make sure that the collision box on your player is large enough, otherwise you’re going to get some upset players that thought they hit it, and then they die…

Hope this helps!