LoginSignup
14
16

More than 5 years have passed since last update.

[Unity] UniRXでタッチイベント周りの処理

Last updated at Posted at 2016-09-08

タッチ系イベント

ObservableEventTriggerAddComponentして、そこからObservableを生やす。

var eventTrigger = this.gameObject.AddComponent<ObservableEventTrigger>();
// PointerDown
eventTrigger.OnPointerDownAsObservable()
            .Subscribe(pointerEventData => Debug.Log(pointerEventData.position));
// Drag
eventTrigger.OnDragAsObservable()
            .Subscribe(pointerEventData => Debug.Log(pointerEventData.position));

using UniRx.Triggers; を忘れずに

UnityのPointerEventDataを受け取れるので、そこから位置とか色々取得できる。

EventTriggerは個別のやつが色々ある。(ObservablePointerDownTriggerとか)
https://github.com/neuecc/UniRx/wiki#unirxtriggers

ObservableEventTriggerはこれらのいくつかをまとめて使えるようにしてくれているっぽいので、
主にタッチ系のイベントはObservableEventTriggerでも良さそう。
https://github.com/neuecc/UniRx/wiki/UniRx.Triggers#observableeventtrigger

ただし、余計なTriggerが付いて困るような場合は、個別のTriggerを使うと良い。

例えば Scroll View の中のComponentにクリックイベントを付けたい場合、
ObservableEventTriggerを付けてしまうとドラッグイベントまでフックしてしまい、
スクロールができなくなってしまう。
この場合はObservablePointerClickTriggerを使うと良い。

Update系イベント

Update系のObservableMonoBehaviorから直接呼び出せる。

this.UpdateAsObservable()
    .Subscribe(_ => Debug.Log(Time.realtimeSinceStartup));

WWW

WWWを使ったダウンロードは、staticメソッドの ObservableWWW.Get を使う
https://github.com/neuecc/UniRx#network-operations

ObservableWWW.Get("http://google.com")
             .Subscribe(
                 downloadText => Debug.Log(downloadText),
                 exception => Debug.Log(exception));

並列ダウンロードもできるらしい。便利。

ドキュメント充実してて助かる
https://github.com/neuecc/UniRx

14
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
16