Beispiel #1
0
    public static bool GetSwipe(KeyCode swipeArrow)
    {
        if (OldInputValue.IsNewFrame())
        {
            _swipeResult[KeyCode.RightArrow] = false;
            _swipeResult[KeyCode.LeftArrow]  = false;
            _swipeResult[KeyCode.UpArrow]    = false;
            _swipeResult[KeyCode.DownArrow]  = false;

            if (Input.GetKey(KeyCode.H))
            {
                _swipeResult[KeyCode.RightArrow] = true;
            }
            if (Input.GetKey(KeyCode.F))
            {
                _swipeResult[KeyCode.LeftArrow] = true;
            }
            if (Input.GetKey(KeyCode.T))
            {
                _swipeResult[KeyCode.UpArrow] = true;
            }
            if (Input.GetKey(KeyCode.G))
            {
                _swipeResult[KeyCode.DownArrow] = true;
            }

            bool    isTouch = OVRInput.Get(OVRInput.Touch.PrimaryTouchpad);
            Vector2 axis    = OVRInput.Get(OVRInput.Axis2D.PrimaryTouchpad);

            if (OldInputValue.isTouch && isTouch &&
                (OldInputValue.touchStartAxis - axis).magnitude >= 0.1)
            {
                if (OldInputValue.axis.x < axis.x)
                {
                    _swipeResult[KeyCode.RightArrow] = true;
                }
                if (OldInputValue.axis.x > axis.x)
                {
                    _swipeResult[KeyCode.LeftArrow] = true;
                }
                if (OldInputValue.axis.y < axis.y)
                {
                    _swipeResult[KeyCode.UpArrow] = true;
                }
                if (OldInputValue.axis.y > axis.y)
                {
                    _swipeResult[KeyCode.DownArrow] = true;
                }
            }

            OldInputValue.SaveOld(isTouch, axis, _swipeResult);
        }

        return(_swipeResult[swipeArrow]);
    }
Beispiel #2
0
    // スワイプ終了を取得
    public static bool GetSwipeUp(KeyCode swipeArrow)
    {
        int prev1OffCount = 0;
        int prev2OnCount  = 0;

        int i = OldInputValue.swipeHistory.Count - 1;

        for (; i >= 0; i--)
        {
            var swipe = OldInputValue.swipeHistory[i];
            if (swipe[swipeArrow] == false)
            {
                prev1OffCount++;
            }
            else
            {
                break;
            }
        }
        for (; i >= 0; i--)
        {
            var swipe = OldInputValue.swipeHistory[i];
            if (swipe[swipeArrow] == true)
            {
                prev2OnCount++;
            }
            else
            {
                break;
            }
        }

        // 10フレーム以上スワイプしてる→10フレーム以上スワイプしてない……のとき
        bool result = (prev2OnCount >= 10 && prev1OffCount >= 10);

        if (result)
        {
            OldInputValue.FillSwipeHistory(swipeArrow, false);
        }
        return(result);
    }