Tips

UnityでKii Cloudを使ってハイスコアランキングを作ろう!#2 ユーザー作成編
2016.10.27

UnityでKii Cloudを使ってハイスコアランキングを作ろう!#2 ユーザー作成編

UnityでKii Cloudを使ってハイスコアランキングを作ろう!#2 ユーザー作成編


前回 に引き続き、Unityでハイスコアランキングとか手軽に実装してみたい!
という方向けに、Kii Cloud を使用したデータの保存と検索機能の実装について紹介してきます。

今回は第2回目、ユーザー作成編です。
新規ユーザーの作成とログイン処理についてスクリプトメインで解説していきます。

※使用しているUnityのバージョンは5.3.4です。
[Unity_317×90]

Kiiユーザーの管理


1.ユーザー作成&ログイン用UI

動作確認用として簡単なUIを用意しました。
InputFieldから値を受け取り、Buttonで処理を実行します。

ws000591

InputFieldの扱いがよくわからない方はこちらの記事をご一読ください。

2.Kiiユーザーの作成とログイン

Kii Cloud への操作は、全て専用のAPIが用意されています。
全てのAPIについての詳細は公式のリファレンスを参照してください。

Kii Cloudにデータを保存するため、最初にユーザー(KiiUser)を作成します。
・登録処理はKiiUserクラスのRegisterメソッドを使用します。
・KiiUserは、「ユーザー名」と「パスワード」で作成します。
・必要に応じて「メールアドレス」や「電話番号」をユーザー情報に付与できます。

ユーザーが作成されると、ログインできるようになります。
・ログイン処理はKiiUserクラスのLogInメソッドを使用します。
・ユーザー登録時に設定した「ユーザー名」と「パスワード」を使用します。

サンプルスクリプト

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
using UnityEngine;
using UnityEngine.UI;
using KiiCorp.Cloud.Storage;
 
public class KiiManager_NonBlocking : MonoBehaviour {
 
    private string userId;
    private string passWord;
    private InputField inputFieldUserId;
    private InputField inputFieldPassWord;
 
    void Start() {
        // コンポーネントの取得
        inputFieldUserId = transform.FindChild("InputFieldUserId").GetComponent<InputField>();
        inputFieldPassWord = transform.FindChild("InputFieldPassWord").GetComponent<InputField>();
        inputFieldUserId.ActivateInputField();
    }
 
 
    /// <summary>
    /// InputFieldの値を変数にセットするメソッド
    /// InputFieldからコールする
    /// </summary>
    public void SetInputValues() {
 
        userId = inputFieldUserId.text;
        passWord = inputFieldPassWord.text;
 
    }
 
 
    /// <summary>
    /// KiiCloudにサインアップするメソッド
    /// サインアップボタンからコールする
    /// </summary>
    public void Signup() {
        // 登録するユーザー名でKiiUser.Builderを生成
        KiiUser.Builder builder = KiiUser.BuilderWithName(userId);
 
        // インスタンスにメールアドレスと電話番号をセット(必要なら)
        builder.SetEmail("ABC123456@example.com");
        builder.SetGlobalPhone("+819012345678");
 
        // Builderをビルドして、KiiUserを生成
        KiiUser user = builder.Build();
 
        // パスワードと一緒に、KiiUserを登録する(通信が発生する)
        user.Register(passWord, (KiiUser registeredUser, System.Exception e) => {
            if (e != null) {
                Debug.LogError("ユーザー名" + userId + "の登録に失敗しました:" + e);
                return;
            }
            Debug.Log("ユーザー名 " + userId + " の登録に成功しました");
        });
    }
 
 
    /// <summary>
    /// KiiCloudにログインするメソッド
    /// ログインボタンからコールする
    /// </summary>
    public void Login() {
 
        // ユーザー名とパスワードでKiiCloudにログインする(通信が発生する)
        KiiUser.LogIn(userId, passWord, (KiiUser user, System.Exception e) => {
            if (e != null) {
                Debug.Log(userId + " のログインに失敗しました " + e);
                return;
            }
            Debug.Log(userId + " がログインしました");
 
        });
    }
        

KiiのAPIは、デリゲートとラムダ式を使用して記述されています。
正確には、通信処理のコールバックを引数(デリゲート)にラムダ式で渡しています。
KiiのAPIには非ブロッキングAPIとブロッキングAPIが用意されており、前者の使用が推奨されています。
コールバックを使用した非ブロッキングAPIは、KiiCloudとの通信中でも動作が固まることはありません。
メソッド呼び出し後、即座に次の処理に移行し、通信処理の結果は後ほどコールバックされます。

3.動作確認

各メソッドとUIのボタンを紐づけたら、シーンを作成して動作を確認してみましょう。
unity_kii_2

また、Kii Developer Portal にて、ユーザーデータが作成されていることも合わせて確認しましょう。
ws000592

#2 ユーザー作成編は以上です。
次回は #3 セーブ&ロード編 です。

ゲーム制作関連のオススメ連載リンク

とっても手軽なゲーム制作体験!
Unityゲーム開発基礎

実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発

Recent News

Recent Tips

Tag Search