Skip to content

anzfactory/Yoshinani

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

注意事項 2017.07.21

このリポは非推奨です。
よりオフィシャルに近いところで開発が進んでいるのでそちらをお使い下さい。

LeaderboardForUnityWebGL

WebGLに正式に対応するというアナウンスもあったので、楽しみですね!

Yoshinani

Unity(C#)で NCMB REST API を叩くやつです。(WebGL向けに)

できること

NCMBRankingスクリプト

  • スコアユーザのニックネーム変更(一度もスコア送信していない場合はエラーになる)
  • スコア送信
  • トップランカー取得
  • ユーザ自身の順位取得

Captureスクリプト

  • スクリーンショットを撮ってNCMBファイルストアへアップロード
  • スクリーンショットを撮って新しいWindowで開く

NCMBのファイルストアへアップロードしても、公開されるURLがわからないので使いみちはないかも...
(無料枠だと容量も潤沢にあるわけではないですし...)
新しいWindowで開くのはありとは思います。Webだと画像保存してツイートはそこまで手間じゃないとおもうので

Prefab

梱包されている RankingBoard というプレファブを使えば、
NDMBRankingを中でよしなにあれこれしているので、
ノンコーディングでランキング表示できます
(※ uGUI で構築されています)
スコアの送信自体は適宜行って下さい..

サンプルあれこれ

なんとなくイメージをつかればとおもいサンプルもちらほらあります。
これは Yoshinani.unitypackage.zip には入っていないので
みてみたいという場合は Source Code の方をダウンロードしてください。

セットアップ

  1. まずはNCMBアカウントつくってください!(すでにあるならSkip!)
  2. そして新規にアプリを作ってください(すでにあるならSkip!)
  3. つくったアプリのデータストアで Scores っていうクラスを作っておいてください(さしあたっては作るだけでいいです)
  4. ここまででNCMBでの作業はおわり。つぎに、ここから Yoshinani.unitypackage.zip をダウンロードします
  5. 展開してプロジェクトにImportします
  6. 適当にGameObjectを作って、NCMBRankingをアタッチ
  7. Inspectorから ApplicationKeyClientKey の両方を設定(これらはNCMBのアプリ設定に記載されています!)
  8. 以上です!あとは、アタッチした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

RankingBoardというプレファブの使い方

  1. Canvasを設置(すでにあるならスキップ)
  2. Yoshinani>Refabs>RankingBoardをCanvas内にドラッグ&ドロップ
  3. 大きさ等を適宜調整
  4. Inspector上でNCMBRankingコンポーネントのApplicationKey/ClientKeyを設定
  5. 後はよしななタイミングでRankingBoard.Show()を呼び出すだけ!

デザインなんかは各々調整してくださいまし...

補足

サンプルゲーム

ミニゲームをサンプルとしていれてみました。
RankingBoardとかNCMBRankingとかの使うイメージをなんとなくつかめればなーと
もちろん、これはサンプルであって使い方はどうぞご自由に!
Yoshinani.unitypackage.zip にはサンプルは入っていないので
見たい場合は Source Code を落として下さい

REST APIを自分でたたきたい

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ドキュメント当たりを参照してください。
NCMBRankingSelfRank()あたりも参考になるかも)

CREDIT

Nifty Cloud Mobile Backend
darktable/MiniJSON.cs

LICENSE

MIT