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); } }