Question by
jezzripper · Jul 29, 2020 at 11:34 AM ·
mobiletouchtouch controlscontrolsswipe
How do is make Unity 8-way swipe touch control code
public class InputController : MonoBehaviour{
private Vector2 fp; // first Touch
private Vector2 Lp; // last touch
private int Xdistance;
private int Ydistance;
private float distance;
void Start(){
distance=screen.height * 15 / 100;
}
void Update(){
if(Input.touchCount==1){
Touch touch= Input.GetTouch(0);
if(touch.phase==TouchPhase.Began){
fp=touch.position;
lp=touch.position;
}
else if(touch.phase==TouchPhase.Moved){
lp=touch.position;
}
else if(touch.phase==TouchPhase.Ended){
lp=touch.position;
if( Math.Abs(lp.x-fp-x) > distance )
{
if(fp.x-lp.x>0)
{
Xdistance=1;
}
else
{
Xdistance=-1;
}
}
if(Math.Abs(lp.y-fp.y)>distance)
{
if( lp.y-fp.y > 0)
{
Ydistance=1;
}
else
{
Xdistance=-1;
}
}
if(Xdistance==1 && Ydistance==1)
{
Debug.log("SwipeUpLeft");
}
else if(Xdistance==-1 && Ydistance==1)
{
Debug.log("SwipeUpRight");
}
else if(Xdistance == 1 && Ydistance == -1)
{
Debug.log("SwipeDownLeft");
}
else if(Xdistance == -1 && Ydistance == -1)
{
Debug.log("SwipeDownRight");
}
else if( Xdistance < 0)
{
Debug.log("SwipeRight");
}
else if(Xdistance > 0 )
{
Debug.log("SwipeLeft");
}
else if(Ydistance < 0 )
{
Debug.log("SwipeDown");
}
else if(Ydistance > 0 )
{
Debug.log("SwipeUp");
}
else
{
Debug.log("Tap");
}
}
}
}//update
}//class
Comment
Write what part of this you need help with. Is it working? What part is broken? Where are you stuck?
Your answer
Follow this Question
Related Questions
Best tool to do swipe/touch control of multiple objects in one scene 0 Answers
Swipe to Kill Enemy (Ant) 2D 0 Answers
Swipe camera rotation controller (HELP) 0 Answers
Mobile touching screen is pressing mouse 0 0 Answers
ScreenToWorldPoint on One Axis? 0 Answers