タッチ系イベント
ObservableEventTrigger
をAddComponent
して、そこから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系のObservable
はMonoBehavior
から直接呼び出せる。
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