Beispiel #1
0
    public void TouchesMoved(Vector3 inputPos)
    {
        if (LAppLive2DManager.Instance.IsTouchMode2D() == false)
        {
            //  カメラの Projection が Perspective である場合(3Dカメラ)
            UpdateTouchPos_3DCamera(inputPos);
        }
        else
        {
            //  カメラの Projection が Orthographic である場合(2Dカメラ)
            UpdateTouchPos_2DCamera(inputPos);
        }

        var p1x = touchPos_onModelCanvas.x;
        var p1y = touchPos_onModelCanvas.y;

        if (LAppDefine.DEBUG_TOUCH_LOG)
        {
            Debug.Log("touchesMoved" + " (Device) x:" + inputPos.x + " y:" + inputPos.y + " (Local) x:" + p1x + " y:" + p1y);
        }
        touchMgr.TouchesMoved(p1x, p1y);
        float x = TransformDeviceToViewX(touchMgr.GetX());
        float y = TransformDeviceToViewY(touchMgr.GetY());

        dragMgr.Set(x, y);

        const int FLICK_DISTANCE = 100;// この値以上フリックしたらイベント発生

        // フリックイベントの判定

        if (touchMgr.IsSingleTouch() && touchMgr.IsFlickAvailable())
        {
            float flickDist = touchMgr.GetFlickDistance();
            if (flickDist > FLICK_DISTANCE)
            {
                float touchPos_plane2x2_X = touchPos_onPlane.x * 2 - 1;
                float touchPos_plane2x2_Y = -touchPos_onPlane.y * 2 + 1;
                model.FlickEvent(touchPos_plane2x2_X, touchPos_plane2x2_Y);
                touchMgr.DisableFlick();
            }
        }

        if (lastX != p1x && lastY != p1y)
        {
            isMove = true;
        }
    }