GS2-SDK‎ > ‎GS2 SDK for Unity‎ > ‎

GS2-ConsumableItem

消費型アイテムの管理を GS2 SDK for Unity から利用する手順を解説します。

アイテムプールを作成する

GS2マネージメントコンソールの GS2-ConsumableItem から新しくアイテムプールを作成します。
アイテムプールは複数種類のアイテムの所持数をまとめて管理する単位です。



『アイテムプールの新規作成』をクリックします。



アイテムプールの名前をつけます。
サービスクラスは想定されるアクセス数に応じたサイズを選択します。

続けて、管理したいアイテムを登録します。


「アイテム」タブを選択し、「アイテムの新規作成」を選択します。


アイテムの付与・消費時に指定することになる名前と最大所持数を指定します。

これで、GS2マネージメントコンソールでおこなう準備は完了です。

消費型アイテム処理を実装

ここからは Unity での実装になります。
まずはログイン処理を実装する必要があります。ログインして Gs2.GameSession を取得するまでの手順は GS2-Auth をご参照ください。
ここからはログインが完了している前提で説明を進めます。

所持アイテム一覧を取得

  1. public class GameLogic : MonoBehaviour {
  2. private const string CLIENT_ID = "your client id";
  3. private const string CLIENT_SECRET = "your client secret";
  4. Gs2.Client gs2;
  5. Gs2.GameSession session;
  6. void Start () {
  7. // GS2 Client を初期化
  8. gs2 = new Gs2.Client (new Gs2.Profile ()
  9. .WithClientId (CLIENT_ID)
  10. .WithClientSecret (CLIENT_SECRET));
  11. StartCoroutine (Login ());
  12. }
  13. IEnumerator Login() {
  14. // GS2-Account を利用して認証します
  15. string GAME_NAME = "game-0001";
  16. string KEY_NAME = "account";
  17. string USER_ID = "user";
  18. string PASSWORD = "password";
  19. string authenticationToken = null;
  20. yield return gs2.Account.Authentication (
  21. result => {
  22. if(result.Error != null) throw result.Error;
  23. authenticationToken = result.Result;
  24. },
  25. GAME_NAME,
  26. KEY_NAME,
  27. USER_ID,
  28. PASSWORD);
  29. // GS2-Account の認証情報を利用して GS2 にログインします
  30. yield return gs2.Auth.Login (
  31. result => {
  32. if(result.Error != null) throw result.Error;
  33. session = result.Result;
  34. },
  35. USER_ID,
  36. KEY_NAME,
  37. authenticationToken);
  38. StartCoroutine (GetInventory ());
  39. }
  40. IEnumerator GetInventory() {
  41. // インベントリの内容を取得
  42. yield return gs2.ConsumableItem.GetInventory(
  43. r => {
  44. if(r.Error != null) throw r.Error;
  45. var itemName = r.Result[0].ItemName; // アイテム名
  46. var count = r.Result[0].Count; // 所持数量
  47. },
  48. session,
  49. "itemPool-0001"); // アイテムプール名
  50. }
  51. void Update () {
  52. }
  53. }

アイテムを消費
  1. public class GameLogic : MonoBehaviour {
  2. private const string CLIENT_ID = "your client id";
  3. private const string CLIENT_SECRET = "your client secret";
  4. Gs2.Client gs2;
  5. Gs2.GameSession session;
  6. void Start () {
  7. // GS2 Client を初期化
  8. gs2 = new Gs2.Client (new Gs2.Profile ()
  9. .WithClientId (CLIENT_ID)
  10. .WithClientSecret (CLIENT_SECRET));
  11. StartCoroutine (Login ());
  12. }
  13. IEnumerator Login() {
  14. // GS2-Account を利用して認証します
  15. string GAME_NAME = "game-0001";
  16. string KEY_NAME = "account";
  17. string USER_ID = "user";
  18. string PASSWORD = "password";
  19. string authenticationToken = null;
  20. yield return gs2.Account.Authentication (
  21. result => {
  22. if(result.Error != null) throw result.Error;
  23. authenticationToken = result.Result;
  24. },
  25. GAME_NAME,
  26. KEY_NAME,
  27. USER_ID,
  28. PASSWORD);
  29. // GS2-Account の認証情報を利用して GS2 にログインします
  30. yield return gs2.Auth.Login (
  31. result => {
  32. if(result.Error != null) throw result.Error;
  33. session = result.Result;
  34. },
  35. USER_ID,
  36. KEY_NAME,
  37. authenticationToken);
  38. StartCoroutine (ListMessage ());
  39. }
  40. IEnumerator GetInventory() {
  41. // アイテムを消費
  42. yield return gs2.ConsumableItem.ConsumeItem(
  43.          r => {
  44.                 if(r.Error != null) throw r.Error;
  45.          },
  46.          session,
  47.          "itemPool-0001", // アイテムプール名
  48.          "item-0001", // 消費するアイテム名
  49.          1 // 消費数量
  50.          );
  51. }
  52. void Update () {
  53. }
  54. }

Comments