Skip to content

Commit

Permalink
Update README.md for ver1.1
Browse files Browse the repository at this point in the history
  • Loading branch information
kugimasa authored Apr 29, 2022
1 parent 571293c commit adc6591
Showing 1 changed file with 36 additions and 9 deletions.
45 changes: 36 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,42 @@ NCMBをバックエンドとして用いたUnityのランキング機能のテ

Unity1Weekをはじめとしたゲームジャムでのランキング機能としてご活用ください。
より簡単な設定でランキング導入したい場合は、**@naichilab**さんの[unity-simple-ranking](https://github.com/naichilab/unity-simple-ranking)がおすすめです。
(いつもありがとうございます!)

![Sample](https://user-images.githubusercontent.com/40158101/164978642-945155bd-f800-4aa7-9fa8-a24be57bc2d0.jpg)
![Sample](https://user-images.githubusercontent.com/40158101/165917150-f6296367-bd4b-413b-93e7-be762aece4df.jpg)

## 動作環境
- Unity Version: 2020.3.21f1(LTS)にて動作確認済みです。
- TextMeshProを使用しています。
- 事前にNCMBの設定が必要です。(詳しくは使用方法を参照してください)

## アセット構成
- Prefabs
- RankingCanvas.prefab: ランキングパネル本体を含んだCanvas
- RankingRecord.prefab: データレコード用のPrefab
- RankingCanvas.prefab: 以下のPrefabが入っているCanvas
- RankingPanel.prefab: ランキングデータが表示されるパネル
- RankingFetcher.prefab: ランキングデータを取得するボタン
- ScoreSender.prefab: スコアをデータベースに送信するボタン
- NameForm.prefab: ユーザ名設定用の入力フォーム
- RankingRecord.prefab: データレコード用のPrefab
- Scripts
- [RankingManager.cs](https://github.com/kugimasa/UnityCustomRankingTemplate/blob/main/Assets/Scripts/RankingManager.cs): ランキングのデータ操作を行うためのクラス
- [ScoreSender.cs](https://github.com/kugimasa/UnityCustomRankingTemplate/blob/main/Assets/Scripts/ScoreSender.cs): スコアをデータベースに送信するためのクラス
- [NameForm.cs](https://github.com/kugimasa/UnityCustomRankingTemplate/blob/main/Assets/Scripts/NameForm.cs): ユーザ名設定用のクラス
- [RankingRecord.cs](https://github.com/kugimasa/UnityCustomRankingTemplate/blob/main/Assets/Scripts/RankingRecord.cs): データレコード用のクラス
- [RankingUtils.cs](https://github.com/kugimasa/UnityCustomRankingTemplate/blob/main/Assets/Scripts/RankingUtils.cs): ランキング用のキーなどを管理するstaticクラス

## 特徴
- 自身のランキングデータの色をカスタマイズできます。
- 順位に応じて、バッジの色をカスタマイズできます
- 順位に応じて、バッジの素材、色、サイズをカスタマイズできます
- スコアが同じユーザは同じ順位になります。
<img width="300" alt="スクリーンショット 2022-04-24 22 14 05" src="https://user-images.githubusercontent.com/40158101/164980862-c4da44a7-af07-424d-8e95-15bf0e2a702d.png">
- ユーザが自身の名前を自由に変えることができます。
<img width="500" alt="スクリーンショット 2022-04-24 22 14 05" src="https://user-images.githubusercontent.com/40158101/165919290-77302eb9-9e6c-4514-ad7f-3b5140921b5b.png">


## 使用方法
### バックエンド(NCMB)の設定
1. [ニフクラ mobile backend クイックスタート](https://mbaas.nifcloud.com/doc/current/introduction/quickstart_unity.html)に沿って「APIキーの設定とSDKの初期化」まで設定を行います。
2. NCBMのアプリケーション管理画面の「データストア」から新しいクラスを作成します。(クラス名は任意です)
2. NCMBのアプリケーション管理画面の「データストア」から新しいクラスを作成します。(クラス名は任意です)
![Setting](https://user-images.githubusercontent.com/40158101/164979966-da5e5986-5f19-47c5-aba2-9313948998b8.png)
3. 「クラスの編集」から、フィールドを追加します。
![Class](https://user-images.githubusercontent.com/40158101/164980238-83465e27-d698-450b-a4df-e06441beaebe.png)
Expand All @@ -41,7 +50,25 @@ Unity1Weekをはじめとしたゲームジャムでのランキング機能と
### アセットの設定
1. [Releases](https://github.com/kugimasa/UnityCustomRankingTemplate/releases)よりunitypackageをダウンロードし、Unityにインポートします。
2. [RankingUtils.cs](https://github.com/kugimasa/UnityCustomRankingTemplate/blob/main/Assets/Scripts/RankingUtils.cs)`NCMBStorageKey`を 2. で設定したクラス名にします。
https://github.com/kugimasa/UnityCustomRankingTemplate/blob/2dc3af6eb44456d7253c683e9bce672eafb01533/Assets/Scripts/RankingUtils.cs#L9-L10
```cs
// NCMBのデータストアキー
internal static readonly string NCMBStorageKey = "UnityCustomRanking";
```
3. [RankingCanvas.prefab](https://github.com/kugimasa/UnityCustomRankingTemplate/blob/main/Assets/Prefabs/RankingCanvas.prefab)をシーンに配置します。
4. 以下のメソッドをデータを保存したいタイミングで呼び出します。
https://github.com/kugimasa/UnityCustomRankingTemplate/blob/2dc3af6eb44456d7253c683e9bce672eafb01533/Assets/Scripts/RankingManager.cs#L57-L60

#### RankingFetcher
RankingPanelを開き、取得したランキングデータを表示します。

#### NameForm
入力フォームにユーザ名を入力し、Saveボタンを押すことでユーザ名を更新します。
データベースも更新されます。確認するには「FETCH RANKING」を押してください。

#### ScoreSender
インスペクターで設定されたスコアデータをデータベースに送信します。
スコア更新(現状のスコアよりハイスコア)がない場合は上書きされません。

<img width="500" alt="image" src="https://user-images.githubusercontent.com/40158101/165920742-aff4837f-4c56-4f37-a047-e6f10dd019c7.png">

## その他
RankingCanvasはあくまで実装例なので自由にカスタマイズしてください。
質問や不具合報告などお気軽にご連絡ください!

0 comments on commit adc6591

Please sign in to comment.