public enum Gessture {
NONE = 0,
LEFT = 1,
RIGHT = 2,
UP = 3,
DOWN = 4
}
private Gessture dir = Gessture.NONE;
private bool mIsMove = true;
private bool startPosFlag;
private Vector3 startFingerPos;
private Vector3 nowFingerPos;
private float xMoveDistance;
private float yMoveDistance;
private void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
Application.Quit();
if (Input.touchCount == 1) {
if (Input.GetTouch(0).phase == TouchPhase.Began && startPosFlag == true)
{
//Debug.Log("======开始触摸=====");
startFingerPos = Input.GetTouch(0).position;
startPosFlag = false;
}
if (Input.GetTouch(0).phase == TouchPhase.Ended)
{
//Debug.Log("======释放触摸=====");
startPosFlag = true;
mIsMove = true;
}
nowFingerPos = Input.GetTouch(0).position;
xMoveDistance = Mathf.Abs(nowFingerPos.x - startFingerPos.x);
yMoveDistance = Mathf.Abs(nowFingerPos.y - startFingerPos.y);
if (mIsMove) {
if (xMoveDistance > yMoveDistance)
{
if (nowFingerPos.x - startFingerPos.x > 0)
{
//Debug.Log("=======沿着X轴负方向移动=====");
mIsAdd = false;
dir = Gessture.RIGHT; //沿着X轴负方向移动
MoveItem();
mIsMove = false;
return;
}
else
{
//Debug.Log("=======沿着X轴正方向移动=====");
mIsAdd = false;
dir = Gessture.LEFT; //沿着X轴正方向移动
MoveItem();
mIsMove = false;
return;
}
}
else
{
if (nowFingerPos.y - startFingerPos.y > 0)
{
//Debug.Log("=======沿着Y轴正方向移动=====");
mIsAdd = false;
dir = Gessture.UP; //沿着Y轴正方向移动
MoveItem();
mIsMove = false;
return;
}
else
{
//Debug.Log("=======沿着Y轴负方向移动=====");
mIsAdd = false;
dir = Gessture.DOWN; //沿着Y轴负方向移动
MoveItem();
mIsMove = false;
return;
}
}
}
}