LoginSignup
10
8

More than 5 years have passed since last update.

UniRxのObservable.FromEventを使う

Posted at

忘れないようにメモ
Observable.FromEventはEventをStreamに変換してObservableを返す。

FromEventの一番単純なやつ(Action)
event Action OnClickEvent;//引数・戻り値のない単純なAction

Observable.FromEvent (
    h => OnClickEvent += h,//Eventに登録するだけ
    h => OnClickEvent -= h)//Eventに解除するだけ
    .Subscribe (_ => print ("hoge"));//Eventが発火した時に OnNextされる
FromEventのAction引数あり
event Action<int> OnClickCountEvent;

Observable.FromEvent<int> (//ジェネリックで引数の型を指定
    h => OnClickCountEvent += h,//Eventに登録するだけ
    h => OnClickCountEvent -= h)//Eventに解除するだけ
    .Subscribe (count => print ("ClickCount:" + count));//OnNextにintが来るのでSubscribeで受け取れる
FromEventのAction引数あり
event Action<int> OnClickCountEvent;

Observable.FromEvent<int> (//ジェネリックで引数の型を指定
    h => OnClickCountEvent += h,//Eventに登録するだけ
    h => OnClickCountEvent -= h)//Eventに解除するだけ
    .Subscribe (count => print ("ClickCount:" + count));//OnNextにintが来るのでSubscribeで受け取れる
FromEventの独自Eventの場合
public delegate void OnComplate (string msg);
public event OnComplate onComplateEvent;

Observable.FromEvent<OnComplate,string> (//ジェネリック<1,2>となる。1にEventの型を、2に引数の型を入れる
    //h => msg => h (msg),//丁寧に書くとこう
    h => h.Invoke,//これでも大丈夫
    h => onComplateEvent += h,//Eventに登録するだけ
    h => onComplateEvent -= h)//Eventに解除するだけ
    .Subscribe (x => print ("OnComplateCallback:" + x));//ジェネリックの2で指定した型が来るのでSubscribeで受け取る
10
8
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
10
8