はじめに
今回はUniRxでEventTriggerによるタッチを制御する方法についての記事になります!
よくユーザーからの入力としてuGUIのbuttonを利用したサンプルがありますよね。
ただ私はよくEventTriggerのPointerDownを使った方法を使います。

以前普通のuGUIのOnClickを用いていたら、感度が悪いとレビューで言われてしまいました。

それからはEventTriggerを愛用しています。
またあまりEventTriggerのUniRxに関するサンプルを見かけなかったので、書き残しておきたいと思います。
やり方
まずはこちらの記述を忘れずにします。
using UniRx; using UniRx.Triggers;
最初にEventTriggerと言いましたが、UniRxで使うのは厳密にはObservableEventTriggerです。
このクラスにはIObservableに変換してくれるメソッドがあるからというわけですね。
実際に使ってみると、
using UniRx; using UniRx.Triggers; using UnityEngine; public class EventTriggerTest : MonoBehaviour { private void Start() { var eventTrigger = gameObject.AddComponent<ObservableEventTrigger>(); // PointerDown eventTrigger.OnPointerDownAsObservable() .Subscribe(pointerEventData => Debug.Log(pointerEventData.position)); } }
これでこのスクリプトがアタッチされたゲームオブジェクトをクリックしてみると、タッチした座標が出力されているはずです。
さいごに
最近知ったのですがuGUIのbuttonにもPointerDownがあるみたいです。
var button = GetComponent<Button>();
button.OnPointerDownAsObservable()
.Subscribe(pointerEventData => Debug.Log(pointerEventData.position));
なのでどちらを使うべきかは好み次第かもしれませんね。