コード例 #1
0
    // Transfrom終了時に呼ばれる
    private void OnTransformComplete(object sender, System.EventArgs e)
    {
        ScreenTransformGesture gesture = (ScreenTransformGesture)sender;
        var touchPoint = gesture.ScreenPosition;
        //開始位置からの移動量をだす
        var moveVector = touchPoint - _touchStartPoint;

        // スワイプ方向判定
        Direction dir = Vec2Dirction(moveVector);

        Debug.Log("Swipe " + dir + " End.");
        switch (dir)
        {
        case Direction.UP:
            swipeUpEnd.Invoke();
            break;

        case Direction.DOWN:
            swipeDownEnd.Invoke();
            break;

        case Direction.RIGHT:
            swipeRightEnd.Invoke();
            break;

        case Direction.LEFT:
            swipeLeftEnd.Invoke();
            break;

        case Direction.NONE:
            //何もしない
            break;
        }
        _swipeDir = Direction.NONE;
    }
コード例 #2
0
 public SphereGestureStrategy(TileController tileController,
                              ScreenTransformGesture twoFingerMoveGesture,
                              ScreenTransformGesture manipulationGesture,
                              float radius) :
     base(tileController, twoFingerMoveGesture, manipulationGesture)
 {
     _radius = radius;
 }
コード例 #3
0
 protected GestureStrategy(TileController tileController,
                           ScreenTransformGesture twoFingerMoveGesture,
                           ScreenTransformGesture manipulationGesture)
 {
     TileController       = tileController;
     TwoFingerMoveGesture = twoFingerMoveGesture;
     ManipulationGesture  = manipulationGesture;
 }
コード例 #4
0
        public void StopMove(ScreenTransformGesture gesture)
        {
            MoveTool.StopMove(gesture.ScreenPosition - _startDragPosition);

            var debugController = ApplicationController.Instance.DebugController;

            debugController.DeleteDebugPoint(string.Format("{0} ScreenPos", GetInstanceID()));
        }
コード例 #5
0
        public void UpdateMove(ScreenTransformGesture gesture)
        {
            var debugController = ApplicationController.Instance.DebugController;

            debugController.DrawDebugPoint(string.Format("{0} ScreenPos", GetInstanceID()), gesture.ScreenPosition, Color.cyan);

            MoveTool.UpdateMove(gesture.ScreenPosition - _startDragPosition);
        }
コード例 #6
0
    // Transform開始時に呼ばれる
    private void OnTransformStart(object sender, System.EventArgs e)
    {
        Debug.Log("Transform Start.");
        //タッチ位置を記録する
        ScreenTransformGesture gesture = (ScreenTransformGesture)sender;

        _touchStartPoint = gesture.ScreenPosition;
    }
コード例 #7
0
    // Use this for initialization
    void Start()
    {
        boundariesLayer = 1 << LayerMask.NameToLayer("Boundaries");
        cam             = Camera.main;
        inputSource     = GetComponent <ScreenTransformGesture>();
        pivot           = cam.transform.parent;

        inputSource.Transformed += CameraTransform;
    }
コード例 #8
0
 public static IObservable <float> DeltaScaleAsObservable(this ScreenTransformGesture gesture)
 {
     return(Observable
            .FromEvent <EventHandler <EventArgs>, EventArgs>(
                h => (sender, e) => h(e),
                h => gesture.Transformed += h,
                h => gesture.Transformed -= h)
            .Select(_ => gesture.DeltaScale));
 }
コード例 #9
0
    // Transform中に呼ばれる
    private void OnTransform(object sender, System.EventArgs e)
    {
        //タッチ位置を取得する
        ScreenTransformGesture gesture = (ScreenTransformGesture)sender;
        var touchPoint = gesture.ScreenPosition;
        //開始位置からの移動量をだす
        var moveVector = touchPoint - _touchStartPoint;

        // スワイプ方向判定
        Direction dir = Vec2Dirction(moveVector);

        // 方向が変わった
        if (_swipeDir != dir)
        {
            switch (_swipeDir)
            {
            case Direction.UP:
                swipeUpCancel.Invoke();
                break;

            case Direction.DOWN:
                swipeDownCancel.Invoke();
                break;

            case Direction.RIGHT:
                swipeRightCancel.Invoke();
                break;

            case Direction.LEFT:
                swipeLeftCancel.Invoke();
                break;
            }
            _swipeDir = dir;
            Debug.Log("Swipe " + moveVector + " (" + dir + ")");
            switch (dir)
            {
            case Direction.UP:
                swipeUpStart.Invoke();
                break;

            case Direction.DOWN:
                swipeDownStart.Invoke();
                break;

            case Direction.RIGHT:
                swipeRightStart.Invoke();
                break;

            case Direction.LEFT:
                swipeLeftStart.Invoke();
                break;

            case Direction.NONE:
                break;
            }
        }
    }
コード例 #10
0
        private void Awake()
        {
            ScaleRange *= Camera.main.orthographicSize;

            HorizontalMoveGesture = GetComponent <ScreenTransformGesture>();
            ScaleGesture          = GetComponent <TransformGesture>();
            PressGesture          = GetComponent <PressGesture>();
            ReleaseGesture        = GetComponent <ReleaseGesture>();
            FlickGesture          = GetComponent <FlickGesture>();
        }
コード例 #11
0
    protected virtual void StateChangedHandle(object sender, System.EventArgs e)
    {
        if (!IsActive())
        {
            return;
        }

        if (!isTransform || !IsPressing())
        {
            return;
        }
        Log("StateChangedHandle (isTransform =" + isTransform + " / IsPressing()=" + IsPressing() + ")");

        // 変形中のタッチ時の処理
        ScreenTransformGesture gesture = sender as ScreenTransformGesture;
        Vector2 nowPoint = gesture.ScreenPosition;

        if (Common.FUNC.IsNanVector(nowPoint))
        {
            return;
        }

        if (gesture.NumPointers == 1)
        {
            if (dragBorder <= GetFixDistance(startPoint, nowPoint) || isDraging)
            {
                //ドラッグ
                isDraging = true;
                ActionInvoke(dragingAction);
            }
        }
        else if (gesture.NumPointers == 2)
        {
            totalPinch += gesture.DeltaScale - 1;
            totalTwist += gesture.DeltaRotation;
            if ((pinchBorder <= Mathf.Abs(totalPinch) || isPinching) && !isTwisting)
            {
                //ピンチイン・アウト
                isPinching = true;
                ActionInvoke(pinchingAction);
            }
            else if ((twistBorder <= Mathf.Abs(totalTwist) || isTwisting) && !isPinching)
            {
                //回転
                isTwisting = true;
                ActionInvoke(twistingAction);
            }
            prePoint = point;
            point    = nowPoint;

            IList <Pointer> pList = gesture.ActivePointers;
            SetPointerDouble(pList[0].Position, pList[1].Position);
        }
    }
コード例 #12
0
ファイル: TouchScroll.cs プロジェクト: ThijsMorlion/Bulb
 protected override void OnEnable()
 {
     base.OnEnable();
     _gesture = GetComponent <ScreenTransformGesture>();
     if (_gesture != null)
     {
         _gesture.Transformed        += Gesture_Transformed;
         _gesture.TransformCompleted += Gesture_TransformCompleted;
         _gesture.TransformStarted   += Gesture_TransformStarted;
     }
 }
コード例 #13
0
    // ----------------------------------------------------------------
    private void OnEnable()
    {
        // Setup Touchscript gestures
        tranGesture = GetComponent <ScreenTransformGesture>();
        tranGesture.TransformStarted += TransformStartHandler;
        tranGesture.Transformed      += TransformOngoingHandler;

        releaseGesture           = GetComponent <ReleaseGesture>();
        releaseGesture.Released += ReleaseHandler;

        pressGesture          = GetComponent <PressGesture>();
        pressGesture.Pressed += PressHandler;
    }
コード例 #14
0
ファイル: ShipInput.cs プロジェクト: dstovell/DogFight
        private void TransformedHandler(object sender, EventArgs e)
        {
            if (this.IsJoystick())
            {
                return;
            }

            //Debug.LogError("TransformedHandler");
            ScreenTransformGesture gesture = sender as ScreenTransformGesture;

            if (gesture != null)
            {
                Vector2 deltaPos = gesture.ScreenPosition - gesture.PreviousScreenPosition;
                this.Human.HandleTransform(deltaPos);
            }
        }
コード例 #15
0
        private void OnEnable()
        {
            _grid = FindObjectOfType <BulbGrid>();

            _selectionController = ApplicationController.Instance.SelectionController;

            _tapGesture         = transform.GetOrAddComponent <TapGesture>();
            _tapGesture.Tapped += _tapGesture_Tapped;

            _transformGesture = transform.GetOrAddComponent <ScreenTransformGesture>();
            _transformGesture.TransformStarted   += _transformGesture_TransformStarted;
            _transformGesture.Transformed        += _transformGesture_Transformed;
            _transformGesture.TransformCompleted += _transformGesture_TransformCompleted;

            GameState.CurrentState = GameStates.Game;
        }
コード例 #16
0
        private void OnEnable()
        {
            _tapGesture         = transform.GetOrAddComponent <TapGesture>();
            _tapGesture.Tapped += OnTapped;

            _transformGesture = transform.GetOrAddComponent <ScreenTransformGesture>();
            _transformGesture.TransformStarted   += OnDragStarted;
            _transformGesture.Transformed        += OnDragUpdate;
            _transformGesture.TransformCompleted += OnDragCompleted;
            _transformGesture.Cancelled          += (object sender, EventArgs e) => Debug.Log("Cancelled transformgesture");

            ApplicationController.Instance.SelectionController.OnSelectionAreaDrawCompleted += OnSelectionAreaDrawCompleted;

            if (GridModeToggleGroup)
            {
                GridModeToggleGroup.OnToggleValueChanged += (GridMode mode) => { SetGridMode(mode); };
                SetGridMode(GridModeToggleGroup.CurrentDrawMode);
            }
        }
コード例 #17
0
ファイル: EditArea.cs プロジェクト: ThijsMorlion/Bulb
        private void Awake()
        {
            _grid = FindObjectOfType <BulbGrid>();
            _selectionController = ApplicationController.Instance.SelectionController;

            _tapGesture         = transform.GetOrAddComponent <TapGesture>();
            _tapGesture.Tapped += _tapGesture_Tapped;

            _transformGesture = transform.GetOrAddComponent <ScreenTransformGesture>();
            _transformGesture.TransformStarted   += _transformGesture_TransformStarted;
            _transformGesture.Transformed        += _transformGesture_Transformed;
            _transformGesture.TransformCompleted += _transformGesture_TransformCompleted;

            LevelController.OnLevelLoaded += (levelName, levelData) => LevelName.text = levelName;
            DataController.OnLevelSaved   += (levelName) => LevelName.text = levelName;

            BuildVersionNumber.text = Application.version;

            GameState.CurrentState = GameStates.Editor;
        }
コード例 #18
0
        private void OnDisable()
        {
            _tapGesture         = transform.GetOrAddComponent <TapGesture>();
            _tapGesture.Tapped -= OnTapped;

            _transformGesture = transform.GetOrAddComponent <ScreenTransformGesture>();
            _transformGesture.TransformStarted   -= OnDragStarted;
            _transformGesture.Transformed        -= OnDragUpdate;
            _transformGesture.TransformCompleted -= OnDragCompleted;

            if (ApplicationController.Instance.SelectionController != null)
            {
                ApplicationController.Instance.SelectionController.OnSelectionAreaDrawCompleted -= OnSelectionAreaDrawCompleted;
            }

            if (GridModeToggleGroup)
            {
                GridModeToggleGroup.OnToggleValueChanged -= (GridMode mode) => { SetGridMode(mode); };
                SetGridMode(GridModeToggleGroup.CurrentDrawMode);
            }
        }
コード例 #19
0
    protected virtual void StateChangedHandle(object sender, System.EventArgs e)
    {
        // 変形中のタッチ時の処理
        //Debug.Log("StateChangedHandle");
        ScreenTransformGesture gesture = sender as ScreenTransformGesture;
        Vector2 nowPoint = gesture.ScreenPosition;

        if (gesture.NumPointers == 1)
        {
            //Debug.Log(point + " >> " + gesture.ScreenPosition + "## " + gesture.DeltaPosition);
            if (dragBorder <= Vector2.Distance(point, gesture.ScreenPosition) || isDraging)
            {
                //ドラッグ
                isDraging = true;
                Drag(gesture.DeltaPosition.x, gesture.DeltaPosition.y);
            }
        }
        else if (gesture.NumPointers == 2)
        {
            totalPinch += gesture.DeltaScale - 1;
            totalTwist += gesture.DeltaRotation;
            if ((pinchBorder <= Mathf.Abs(totalPinch) || isPinching) && !isTwisting)
            {
                //Debug.Log("Pinch");
                //ピンチイン・アウト
                isPinching = true;
                Pinch(gesture.DeltaScale - 1);
            }
            else if ((twistBorder <= Mathf.Abs(totalTwist) || isTwisting) && !isPinching)
            {
                //Debug.Log("Twist");
                //回転
                isTwisting = true;
                Twist(gesture.DeltaRotation);
            }
            //Debug.Log(gesture.DeltaScale+" ## "+ gesture.DeltaRotation);
        }
        //Debug.Log(gesture.ScreenPosition + " ## " + gesture.PreviousScreenPosition);
    }
コード例 #20
0
    // ----------------------------------------------------------------
    // Use this for initialization
    void Awake()
    {
        isUserLearnt = false;
        dragImg      = GetComponent <RectTransform>();
        if (maskImg == null)
        {
            maskImg = transform.parent.GetComponent <RectTransform>();
        }
        gesture = GetComponent <ScreenTransformGesture>();

        maskPos  = maskImg.position;
        maskSize = maskImg.sizeDelta;
        maskTL   = new Vector2(maskPos.x - maskSize.x / 2, maskPos.y + maskSize.y / 2);
        maskBR   = new Vector2(maskPos.x + maskSize.x / 2, maskPos.y - maskSize.y / 2);

        startPos = dragPos = dragImg.position;
        Vector2 dragScale = dragImg.localScale;

        dragSize = new Vector2(dragImg.sizeDelta.x * dragScale.x, dragImg.sizeDelta.y * dragScale.y);

        dragTL = new Vector2(dragPos.x - dragSize.x / 2, dragPos.y + dragSize.y / 2);
        dragBR = new Vector2(dragPos.x + dragSize.x / 2, dragPos.y - dragSize.y / 2);
    }
コード例 #21
0
    private void RotateMap(ScreenTransformGesture gesture)
    {
        double lng1, lat1, lng2, lat2;

        control.GetCoords(gesture.ScreenPosition, out lng1, out lat1);

        Vector3 p = dmControl.center;

        p = control.transform.localToWorldMatrix.MultiplyPoint(p);
        Vector3 pos = control.transform.position - p;

        pos = Quaternion.Euler(0, -gesture.DeltaRotation * speed.y, 0) * pos + p;
        control.transform.position = pos;
        control.transform.Rotate(0, -gesture.DeltaRotation * speed.y, 0);

        control.GetCoords(gesture.ScreenPosition, out lng2, out lat2);

        double ox = lng2 - lng1;
        double oy = lat2 - lat1;

        control.map.GetPosition(out lng1, out lat1);
        control.map.SetPosition(lng1 - ox, lat1 - oy);
    }
コード例 #22
0
 public SurfaceGestureStrategy(TileController tileController,
                               ScreenTransformGesture twoFingerMoveGesture,
                               ScreenTransformGesture manipulationGesture) :
     base(tileController, twoFingerMoveGesture, manipulationGesture)
 {
 }
コード例 #23
0
 private void OnEnable()
 {
     transformGesture              = Camera.main.GetComponent <ScreenTransformGesture>();
     transformGesture.Transformed += TransformGesture_Transformed;
 }
コード例 #24
0
 private void OnEnable()
 {
     myCamera                = GetComponent <Camera>();
     PanGesture              = GetComponent <ScreenTransformGesture>();
     PanGesture.Transformed += Pan;
 }
コード例 #25
0
 public void StartMove(DrawableBase moveHandle, ScreenTransformGesture gesture)
 {
     _startDragPosition = gesture.ScreenPosition;
     MoveTool.StartMove(moveHandle, _startDragPosition, _selectedObjects.ToList());
 }