2015-09-03 69 views
0

如何將多抽頭(不是多點觸摸!)輸入添加到Unity3D遊戲中?我很難找到有關這方面的任何有用信息。Unity3D:添加多抽頭輸入

我到目前爲止是多點觸摸輸入支持。這是我用的是:

private Vector2 _touchOrigin = -Vector2.one; 

    public bool TouchEnded(int touchCount = 1) 
    { 
     if (Input.touchCount != touchCount) return false; 
     Touch lastTouch = Input.GetTouch(touchCount - 1); 
     if (lastTouch.phase == TouchPhase.Began) 
     { 
      _touchOrigin = lastTouch.position; 
     } 
     else if (lastTouch.phase == TouchPhase.Ended && _touchOrigin.x >= 0) 
     { 
      _touchOrigin.x = -1; 
      return true; 
     } 
     return false; 
    } 

我想要做的是寫一個類似的方法,但多點擊。即用戶必須同時敲擊多個手指(touchCount)(tapCount)。這將是方法簽名:

public bool TapEnded(int touchCount = 1, int tapCount = 2) 
    { 
    } 

有人可以給我一些幫助如何得到這個要求的工作?

回答

0

您可以使用Input.Touches返回表示在上一幀期間所有觸摸狀態的對象列表。鏈接提到http://docs.unity3d.com/ScriptReference/Input-touches.html

void Update() { 
    int fingerCount = 0; 
    foreach (Touch touch in Input.touches) { 
     if (touch.phase != TouchPhase.Ended && touch.phase != TouchPhase.Canceled) 
      fingerCount++; 

    } 
    if (fingerCount > 0) 
     print("User has " + fingerCount + " finger(s) touching the screen"); 

} 
+0

但這隻會是關於觸摸事件,而不是點擊事件。我需要的是在特定矩形區域上雙擊或多次點擊(可能使用Touch.tapCount)。它也應該在Android上工作。 – BadmintonCat