このリポは非推奨です。
よりオフィシャルに近いところで開発が進んでいるのでそちらをお使い下さい。
WebGLに正式に対応するというアナウンスもあったので、楽しみですね!
Unity(C#)で NCMB REST API を叩くやつです。(WebGL向けに)
- スコアユーザのニックネーム変更(一度もスコア送信していない場合はエラーになる)
- スコア送信
- トップランカー取得
- ユーザ自身の順位取得
- スクリーンショットを撮ってNCMBファイルストアへアップロード
- スクリーンショットを撮って新しいWindowで開く
NCMBのファイルストアへアップロードしても、公開されるURLがわからないので使いみちはないかも...
(無料枠だと容量も潤沢にあるわけではないですし...)
新しいWindowで開くのはありとは思います。Webだと画像保存してツイートはそこまで手間じゃないとおもうので
梱包されている RankingBoard というプレファブを使えば、
NDMBRanking
を中でよしなにあれこれしているので、
ノンコーディングでランキング表示できます
(※ uGUI で構築されています)
スコアの送信自体は適宜行って下さい..
なんとなくイメージをつかればとおもいサンプルもちらほらあります。
これは Yoshinani.unitypackage.zip には入っていないので
みてみたいという場合は Source Code の方をダウンロードしてください。
- まずはNCMBアカウントつくってください!(すでにあるならSkip!)
- そして新規にアプリを作ってください(すでにあるならSkip!)
- つくったアプリのデータストアで Scores っていうクラスを作っておいてください(さしあたっては作るだけでいいです)
- ここまででNCMBでの作業はおわり。つぎに、ここから Yoshinani.unitypackage.zip をダウンロードします
- 展開してプロジェクトにImportします
- 適当にGameObjectを作って、
NCMBRanking
をアタッチ - Inspectorから ApplicationKey と ClientKey の両方を設定(これらはNCMBのアプリ設定に記載されています!)
- 以上です!あとは、アタッチした
NCMBRanking
をつかってあれこれできます
以下に簡単なサンプルコードを。
// こういう感じにアタッチさせておいて
[SerializeField] private NCMBRanking ncmbRanking;
// スコア送信
// 第2引数のやつは更新を強制するかどうか
// false: ハイスコア更新時のみにスコアを送信する
// true : ハイスコア更新していなくてもスコアを送信する
this.ncmbRanking.SendScore(120f, false, (isError) => {
if (!isError) {
Debug.Log("スコア送信したよ!");
} else {
Debug.LogError("何らかの理由でスコア送信失敗!");
}
});
// スコア送信その2(スコアとニックネームを同時に送るタイプ)
// 第3引数のやつは更新を強制するかどうか
// false: ハイスコア更新時のみにスコアを送信する
// true : ハイスコア更新していなくてもスコアを送信する
this.ncmbRanking.SendScore(120f, "nickname", false, (isError) => {
// ...something...
});
// トップ50取得
this.ncmbRanking.Top50((scoreList) => {
foreach (var score in scoreList) {
Debug.Log(string.Format("{0}: {1}", score.nickname, score.score.ToString()));
}
});
RankingBoardというプレファブの使い方
- Canvasを設置(すでにあるならスキップ)
Yoshinani>Refabs>RankingBoard
をCanvas内にドラッグ&ドロップ- 大きさ等を適宜調整
- Inspector上でNCMBRankingコンポーネントのApplicationKey/ClientKeyを設定
- 後はよしななタイミングで
RankingBoard.Show()
を呼び出すだけ!
デザインなんかは各々調整してくださいまし...
ミニゲームをサンプルとしていれてみました。
RankingBoard
とかNCMBRanking
とかの使うイメージをなんとなくつかめればなーと
もちろん、これはサンプルであって使い方はどうぞご自由に!
Yoshinani.unitypackage.zip にはサンプルは入っていないので
見たい場合は Source Code を落として下さい
NCMBRanking
で提供している機能以外を使用する場合はXyz.Anzfactory.NCMBUtil.Yoshinani
を直接利用することで、
NCMB REST APIを利用することができます
例えば...
Stagesっていうクラスを作ってデータを登録してあって、それを全取得したい場合は
// 必ず先んじてセットアップ
Yoshinani.Instance.Setup("YourApplicationKey", "YourClientKey");
// Stagesからデータ取得
Yoshinani.Instance.Call(Yoshinani.RequestType.Get, "classes/Stages", null, (isError, json) => {
// jsonが結果なのであとは好きにデシリアライズしてください
});
こういう感じになります。
条件などの指定はNCMB RESTドキュメント当たりを参照してください。
(NCMBRanking
のSelfRank()
あたりも参考になるかも)
Nifty Cloud Mobile Backend
darktable/MiniJSON.cs
MIT