Ejemplo n.º 1
0
    private void Scroll(ObservableEventTrigger trigger)
    {
        trigger.OnPointerDownAsObservable()
        .Subscribe(data =>
        {
            m_DragStartInfo.SetStartPosition(data.position);
            m_DragStartInfo.StartTime = Time.time;
        }).AddTo(gameObject);

        this.UpdateAsObservable()
        .SkipUntil(trigger.OnBeginDragAsObservable())
        .TakeUntil(trigger.OnEndDragAsObservable().Do(data =>
        {
            // 二本指以上でのスクロールはピンチイン・アウトの可能性があるから
            if (Input.touchCount < 2)
            {
                var startUv = m_DragStartInfo.StartPoint;
                var endUv   = CalcScreenUv(data.position);
                m_NetworkManager.SetCommand($"5,{startUv.x},{startUv.y},{endUv.x},{endUv.y}");
                if (ShowDragObservable)
                {
                    Debug.Log($"Scroll: 5,{startUv.x},{startUv.y},{endUv.x},{endUv.y}");
                }
            }
        }))
        .RepeatUntilDestroy(this)
        .Subscribe(_ =>
        {
            if (ShowDragObservable)
            {
                Debug.Log("Scrolling...");
            }
        }).AddTo(gameObject);
    }
Ejemplo n.º 2
0
    void OnEnable()
    {
        // XXX: Consider switching to Observable{Begin,,End}DragTrigger.
        eventTrigger
        .OnBeginDragAsObservable()
        .TakeUntilDisable(this)
        .Where(eventData => eventData.pointerDrag.gameObject == this.gameObject)
        .Select(eventData => eventData.position)
        .Subscribe(position => {
            this.beginPosition = position;
            this.beginTime     = DateTime.Now;
        });

        OnDragRelative = eventTrigger
                         .OnDragAsObservable()
                         .TakeUntilDisable(this)
                         .Where(eventData => eventData.pointerDrag.gameObject == this.gameObject)
                         .Select(eventData => eventData.delta);

        onEndDragObservable = eventTrigger
                              .OnEndDragAsObservable()
                              .TakeUntilDisable(this);

        OnSwipeLeft = OnSwipe(MoveDirection.Left);

        OnSwipeRight = OnSwipe(MoveDirection.Right);

        OnSwipeUp = OnSwipe(MoveDirection.Up);

        OnSwipeDown = OnSwipe(MoveDirection.Down);
    }
Ejemplo n.º 3
0
        //----- property -----

        //----- method -----

        void OnEnable()
        {
            eventTrigger = UnityUtility.GetOrAddComponent <ObservableEventTrigger>(gameObject);

            eventTrigger
            .OnBeginDragAsObservable()
            .TakeUntilDisable(this)
            .Where(eventData => eventData.pointerDrag.gameObject == gameObject)
            .Select(eventData => eventData.position)
            .Subscribe(position =>
            {
                if (onDragStart != null)
                {
                    onDragStart.OnNext(position);
                }
            })
            .AddTo(this);

            eventTrigger
            .OnDragAsObservable()
            .TakeUntilDisable(this)
            .Where(eventData => eventData.pointerDrag.gameObject == gameObject)
            .Select(eventData => eventData.position)
            .Subscribe(position =>
            {
                if (onDrag != null)
                {
                    onDrag.OnNext(position);
                }
            })
            .AddTo(this);

            eventTrigger
            .OnEndDragAsObservable()
            .TakeUntilDisable(this)
            .Where(eventData => eventData.pointerDrag.gameObject == gameObject)
            .Select(eventData => eventData.position)
            .Subscribe(position =>
            {
                if (onDragEnd != null)
                {
                    onDragEnd.OnNext(position);
                }
            })
            .AddTo(this);
        }