NcmbAsObservableは、NIFTYCloudが提供しているNCMB UnityプラグインをUniRxを用いて扱いやすくするライブラリです。
こちらからunitypackageをダウンロードしてください。
まずは NcmbAsObservables
へのusingを追加してください。
末尾がAsyncと表記された非同期APIを **AsyncAsStream と呼びかえることでIObservable
として扱うことができるようになります。
var user = new NCMBUser();
user.UserName = "test_user_name";
user.Password = "hogehoge";
//Singup
user.SingUpAsyncAsStream()
.Subscribe(u =>
{
Debug.Log(string.Format("{0}", u.UserName));
}, e =>
{
Debug.LogError("Unknown Error:" + e);
});
NCMBQueryも同様に、非同期APIを**AsyncAsStream と呼びかえることでIObservable
として扱うことができるようになります。
var query = new NCMBQuery<NCMBObject>("Score");
query.OrderByDescending("score");
query.Limit = 5;
query
.FindAsyncAsStream()
.Subscribe(resultList =>
{
foreach (var o in resultList)
{
Debug.Log(o);
}
}, error => Debug.LogError(error));
NcmbUserにstaticで実装されているAsync系のAPIはObservableFromNcmbUser
から呼び出すことができます。
ObservableFromNcmbUser
.LogInAsync("test_user_name", "hogehoge") //Login
.SelectMany(u => u.FetchAsyncAsStream()) //Fetch
.Do(user => Debug.Log(string.Format("{0}\t{1}", user.UserName, user.Email))) //Show result
.SelectMany(_ => ObservableFromNcmbUser.LogOutAsync()) //Log out
.Subscribe(_ => Debug.Log("Logged out"), e => Debug.LogError(e));
MIT License
PhotonRxはUniRxをベースに作成しています Copyright (c) 2014 Yoshifumi Kawai https://github.com/neuecc/UniRx/blob/master/LICENSE