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
![](https://koobas.hobune.stream/wayback/20220613004333im_/https://answers.unity.com/themes/thub/images/avi.jpg)
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