示例#1
0
 private IEnumerator CheckMultiTapCount()
 {
     while (true)
     {
         for (int k = 0; k < multiTapMouse.Length; k++)
         {
             MultiTapTracker multiTap = multiTapMouse[k];
             if (multiTap.count > 0 && multiTap.lastTapTime + multiTapInterval < Time.realtimeSinceStartup)
             {
                 multiTap.count   = 0;
                 multiTap.lastPos = Vector2.zero;
             }
         }
         for (int j = 0; j < multiTapTouch.Length; j++)
         {
             MultiTapTracker multiTap2 = multiTapTouch[j];
             if (multiTap2.count > 0 && multiTap2.lastTapTime + multiTapInterval < Time.realtimeSinceStartup)
             {
                 multiTap2.count   = 0;
                 multiTap2.lastPos = Vector2.zero;
             }
         }
         for (int i = 0; i < multiTapMFTouch.Length; i++)
         {
             MultiTapTracker multiTap3 = multiTapMFTouch[i];
             if (multiTap3.count > 0 && multiTap3.lastTapTime + multiTapInterval < Time.realtimeSinceStartup)
             {
                 multiTap3.count       = 0;
                 multiTap3.lastPos     = Vector2.zero;
                 multiTap3.fingerCount = 1;
             }
         }
         yield return(null);
     }
 }
示例#2
0
    // Use this for initialization
    void Start()
    {
        if (enableMultiTapFilter)
        {
            IT_Gesture.SetMultiTapFilter(enableMultiTapFilter);
            IT_Gesture.SetMaxMultiTapCount(maxMultiTapCount);
            IT_Gesture.SetMaxMultiTapInterval(multiTapInterval);
        }

        for (int i = 0; i < multiTapMouse.Length; i++)
        {
            multiTapMouse[i] = new MultiTapTracker(i);
        }
        for (int i = 0; i < multiTapTouch.Length; i++)
        {
            multiTapTouch[i] = new MultiTapTracker(i);
        }
        for (int i = 0; i < multiTapMFTouch.Length; i++)
        {
            multiTapMFTouch[i] = new MultiTapTracker(i);
        }

        StartCoroutine(CheckMultiTapCount());
        StartCoroutine(MultiFingerRoutine());

        //Debug.Log(IT_Gesture.GetTouch(0).position);
    }
示例#3
0
    public void CheckMultiTapMFTouch(int fCount, Vector2[] posL, int[] indexes)
    {
        Vector2 a = Vector2.zero;

        for (int i = 0; i < posL.Length; i++)
        {
            a += posL[i];
        }
        a /= posL.Length;
        int  num  = 0;
        bool flag = false;

        for (int j = 0; j < multiTapMFTouch.Length; j++)
        {
            MultiTapTracker multiTapTracker = multiTapMFTouch[j];
            if (multiTapTracker.fingerCount == fCount && Vector2.Distance(a, multiTapTracker.lastPos) < multiTapPosSpacing * IT_Gesture.GetDPIFactor())
            {
                flag = true;
                break;
            }
            num++;
        }
        if (!flag)
        {
            num = 0;
            for (int k = 0; k < multiTapMFTouch.Length; k++)
            {
                MultiTapTracker multiTapTracker2 = multiTapMFTouch[k];
                if (multiTapTracker2.lastPos == Vector2.zero && multiTapTracker2.count == 0)
                {
                    break;
                }
                num++;
            }
        }
        if (multiTapMFTouch[num].lastTapTime > Time.realtimeSinceStartup - multiTapInterval)
        {
            multiTapMFTouch[num].count++;
            multiTapMFTouch[num].lastPos     = a;
            multiTapMFTouch[num].fingerCount = fCount;
            multiTapMFTouch[num].lastTapTime = Time.realtimeSinceStartup;
            IT_Gesture.MultiTap(new Tap(multiTapMFTouch[num].count, fCount, posL, indexes));
            if (multiTapMFTouch[num].count >= maxMultiTapCount)
            {
                multiTapMFTouch[num].count = 0;
            }
        }
        else
        {
            multiTapMFTouch[num].count       = 1;
            multiTapMFTouch[num].lastPos     = a;
            multiTapMFTouch[num].fingerCount = fCount;
            multiTapMFTouch[num].lastTapTime = Time.realtimeSinceStartup;
            IT_Gesture.MultiTap(new Tap(multiTapMFTouch[num].count, fCount, posL, indexes));
        }
    }
示例#4
0
    IEnumerator CheckMultiTapCount()
    {
        while (true)
        {
            //foreach(MultiTapTracker multiTap in multiTapMouse){
            for (int i = 0; i < multiTapMouse.Length; i++)
            {
                MultiTapTracker multiTap = multiTapMouse[i];
                if (multiTap.count > 0)
                {
                    if (multiTap.lastTapTime + multiTapInterval < Time.realtimeSinceStartup)
                    {
                        multiTap.count   = 0;
                        multiTap.lastPos = Vector2.zero;
                    }
                }
            }
            //foreach(MultiTapTracker multiTap in multiTapTouch){
            for (int i = 0; i < multiTapTouch.Length; i++)
            {
                MultiTapTracker multiTap = multiTapTouch[i];
                if (multiTap.count > 0)
                {
                    if (multiTap.lastTapTime + multiTapInterval < Time.realtimeSinceStartup)
                    {
                        multiTap.count   = 0;
                        multiTap.lastPos = Vector2.zero;
                    }
                }
            }
            //foreach(MultiTapTracker multiTap in multiTapMFTouch){
            for (int i = 0; i < multiTapMFTouch.Length; i++)
            {
                MultiTapTracker multiTap = multiTapMFTouch[i];
                if (multiTap.count > 0)
                {
                    if (multiTap.lastTapTime + multiTapInterval < Time.realtimeSinceStartup)
                    {
                        multiTap.count       = 0;
                        multiTap.lastPos     = Vector2.zero;
                        multiTap.fingerCount = 1;
                    }
                }
            }

            yield return(null);
        }
    }
示例#5
0
	// Use this for initialization
	void Start () {
		
		for(int i=0; i<multiTapMouse.Length; i++){
			multiTapMouse[i]=new MultiTapTracker(i);
		}
		for(int i=0; i<multiTapTouch.Length; i++){
			multiTapTouch[i]=new MultiTapTracker(i);
		}
		for(int i=0; i<multiTapMFTouch.Length; i++){
			multiTapMFTouch[i]=new MultiTapTracker(i);
		}
		
		StartCoroutine(CheckMultiTapCount());
		StartCoroutine(MultiFingerRoutine());
		
		//Debug.Log(Gesture.GetTouch(0).position);
	}
示例#6
0
    // Use this for initialization
    void Start()
    {
        for (int i = 0; i < multiTapMouse.Length; i++)
        {
            multiTapMouse[i] = new MultiTapTracker(i);
        }
        for (int i = 0; i < multiTapTouch.Length; i++)
        {
            multiTapTouch[i] = new MultiTapTracker(i);
        }
        for (int i = 0; i < multiTapMFTouch.Length; i++)
        {
            multiTapMFTouch[i] = new MultiTapTracker(i);
        }

        StartCoroutine(CheckMultiTapCount());
        StartCoroutine(MultiFingerRoutine());

        //Debug.Log(Gesture.GetTouch(0).position);
    }
示例#7
0
 private void Start()
 {
     if (enableMultiTapFilter)
     {
         IT_Gesture.SetMultiTapFilter(enableMultiTapFilter);
         IT_Gesture.SetMaxMultiTapCount(maxMultiTapCount);
         IT_Gesture.SetMaxMultiTapInterval(multiTapInterval);
     }
     for (int i = 0; i < multiTapMouse.Length; i++)
     {
         multiTapMouse[i] = new MultiTapTracker(i);
     }
     for (int j = 0; j < multiTapTouch.Length; j++)
     {
         multiTapTouch[j] = new MultiTapTracker(j);
     }
     for (int k = 0; k < multiTapMFTouch.Length; k++)
     {
         multiTapMFTouch[k] = new MultiTapTracker(k);
     }
     StartCoroutine(CheckMultiTapCount());
     StartCoroutine(MultiFingerRoutine());
 }
示例#8
0
	// Use this for initialization
	void Start () {
		
		if(enableMultiTapFilter){
			IT_Gesture.SetMultiTapFilter(enableMultiTapFilter);
			IT_Gesture.SetMaxMultiTapCount(maxMultiTapCount);
			IT_Gesture.SetMaxMultiTapInterval(multiTapInterval);
		}
		
		for(int i=0; i<multiTapMouse.Length; i++){
			multiTapMouse[i]=new MultiTapTracker(i);
		}
		for(int i=0; i<multiTapTouch.Length; i++){
			multiTapTouch[i]=new MultiTapTracker(i);
		}
		for(int i=0; i<multiTapMFTouch.Length; i++){
			multiTapMFTouch[i]=new MultiTapTracker(i);
		}
		
		StartCoroutine(CheckMultiTapCount());
		StartCoroutine(MultiFingerRoutine());
		
		//Debug.Log(IT_Gesture.GetTouch(0).position);
	}
示例#9
0
    public void CheckMultiTapMFTouch(int fCount, Vector2[] posL, int[] indexes)
    {
        Vector2 pos = Vector2.zero;

        //foreach(Vector2 p in posL){
        //	pos+=p;
        //}
        for (int i = 0; i < posL.Length; i++)
        {
            pos += posL[i];
        }
        pos /= posL.Length;

        int  index = 0;
        bool match = false;

        //foreach(MultiTapTracker multiTap in multiTapMFTouch){
        for (int i = 0; i < multiTapMFTouch.Length; i++)
        {
            MultiTapTracker multiTap = multiTapMFTouch[i];
            if (multiTap.fingerCount == fCount)
            {
                if (Vector2.Distance(pos, multiTap.lastPos) < multiTapPosSpacing * IT_Gesture.GetDPIFactor())
                {
                    match = true;
                    break;
                }
            }
            index += 1;
        }

        if (!match)
        {
            index = 0;
            //foreach(MultiTapTracker multiTap in multiTapMFTouch){
            for (int i = 0; i < multiTapMFTouch.Length; i++)
            {
                MultiTapTracker multiTap = multiTapMFTouch[i];
                if (multiTap.lastPos == Vector2.zero && multiTap.count == 0)
                {
                    break;
                }
                index += 1;
            }
        }

        if (multiTapMFTouch[index].lastTapTime > Time.realtimeSinceStartup - multiTapInterval)
        {
            multiTapMFTouch[index].count      += 1;
            multiTapMFTouch[index].lastPos     = pos;
            multiTapMFTouch[index].fingerCount = fCount;
            multiTapMFTouch[index].lastTapTime = Time.realtimeSinceStartup;

            IT_Gesture.MultiTap(new Tap(multiTapMFTouch[index].count, fCount, posL, indexes));

            if (multiTapMFTouch[index].count >= maxMultiTapCount)
            {
                multiTapMFTouch[index].count = 0;
            }
        }
        else
        {
            multiTapMFTouch[index].count       = 1;
            multiTapMFTouch[index].lastPos     = pos;
            multiTapMFTouch[index].fingerCount = fCount;
            multiTapMFTouch[index].lastTapTime = Time.realtimeSinceStartup;

            IT_Gesture.MultiTap(new Tap(multiTapMFTouch[index].count, fCount, posL, indexes));
        }
    }