- Home /
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;
}
Answer by Nerull22 · Jul 28, 2014 at 03:22 PM
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!
Your answer
Follow this Question
Related Questions
Touch android iput shootting 3 Answers
How to differentiate touches on mobile devices 1 Answer
mobile programming questions 1 Answer
Bug? Need to wait about 10 seconds to get back to normal 1 Answer
Camera movement using touch input 0 Answers