Unity3D:添加Multi-Tap输入

时间:2015-09-03 07:47:19

标签: c# unity3d multi-touch

如何在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)
    {
    }

有人可以帮我解决一下如何使这项要求有效吗?

1 个答案:

答案 0 :(得分: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");

}