示例#1
0
 private void Start()
 {
     // IDragHandler が居ないと反応しないっぽいので、無理矢理くっつける
     UIBehaviour.OnDragAsObservable().Take(1).Subscribe();
     UIBehaviour.OnBeginDragAsObservable()
     .SelectMany(_ => UIBehaviour.OnDragAsObservable())
     .Subscribe(
         // 絶対値加算の場合は Mathf.Abs して加算
         pointerEventData => DeltaProperty.Value = new Vector2(
             DeltaProperty.Value.x + (SummarizeAbsolutely ? Mathf.Abs(pointerEventData.delta.x) : pointerEventData.delta.x),
             DeltaProperty.Value.y + (SummarizeAbsolutely ? Mathf.Abs(pointerEventData.delta.y) : pointerEventData.delta.y)
             )
         );
     // ドラッグ終了でリセット
     if (ResetOnEndDrag)
     {
         UIBehaviour.OnEndDragAsObservable().Subscribe(_ => DeltaProperty.Value = Vector2.zero);
     }
 }