Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
14
Help us understand the problem. What is going on with this article?

More than 3 years have passed since last update.

@tkyaji

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

タッチ系イベント

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
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
14
Help us understand the problem. What is going on with this article?