今日はUniRx使ったコールバック関数の使い方だよ|ω・`)
今日使う顔文字はこれだよ|ω・`)|ω・`)
そもそもUnity + reactive extensions(Rx)の略でRx自体いろんな言語で使われてるから覚えて損はないと思う!!!!!!!!٩(๑`^´๑)۶
UniRxはdelegateやらeventと一緒で非同期処理で使ってるよ!!
まずはインスタンス化|ω・`)
ちなみに今回はイベントが発行されたタイミングを知りたいからUnit型を宣言してるよ!
Subjectに何も渡さないのはエラー出るからダメよ!!!|ω・’)
イベント発行時にstring渡したいならSubject(string)とすればよろし
1 |
private Subject(Unit) unitSubject = new Subject(Unit); |
宣言したら次は登録!|ω・`)
delegateでいう「変数 += コールバック関数」のとこやね!
UniRxは基本匿名関数でやってるけどね僕は(ドヤガオ
1 2 3 |
unitSubject.Subscribe (_ => { Debug.Log("<color=red>イベント発行したよ|ω・`)"); }); |
登録したらどこの処理で呼ぶか記述|ω・`)
1 2 3 4 5 6 7 8 |
// サーバから値を取得(非同期処理) public void fetch(){ 〜サーバから値を取得する処理とか〜 // string型を受け取りたいなら unitSubject.OnNext(string) // 今回は何もないので下の通り unitSubject.OnNext(Unit.Default); } |
実はこのUnit.Defaultを知るのに数時間Googleをさまよった。。。
どこ見てもだいたいstringやらint入れてたからね。。|ω;`)
UniRxはもっと便利な機能あるけど、大元の基本はこんな感じ!;ω;`)
そろそろ対人戦アプリ作ろうと思うこの頃…