【Unity】アプリにログイン機能をつけよう!

画像1

概要

ニフティクラウドmobile backendって何??

スマートフォンアプリのバックエンド機能(プッシュ通知・データストア・会員管理・ファイルストア・SNS連携・位置情報検索・スクリプト)が開発不要、しかも基本無料(注1)で使えるクラウドサービス!今回はデータストアを体験します

注1:詳しくはこちらをご覧ください

画像2

動作環境

  • Mac OS X 10.10.5(Yosemite)
  • Unity ver. 5.3.5f1
  • MonoDevelop-Unity ver. 5.9.6
  • NCMB UnitySDK v2.2.0

※上記内容で動作確認をしています。

手順

1. ニフティクラウドmobile backendの会員登録とログイン→アプリ作成

  • 上記リンクから会員登録(無料)をします。登録ができたらログインをすると下図のように「アプリの新規作成」画面が出るのでアプリを作成します

画像3

  • アプリ作成されると下図のような画面になります
  • この2種類のAPIキー(アプリケーションキーとクライアントキー)はXcodeで作成するiOSアプリにニフティクラウドmobile backendを紐付けるために使用します

画像4

  • 動作確認後に会員情報が保存される場所も確認しておきましょう

画像5

2. GitHubからサンプルプロジェクトのダウンロード

  • この画面(GitHub)の画像10ボタンをクリックし、さらに画像11ボタンをクリックしてサンプルプロジェクトをMacにダウンロードします

3. Unityでアプリを起動

  • ダウンロードしたフォルダを解凍し、Unityから開いてください。その後、Loginsigninシーンを開いてください。

4. APIキーの設定

画像07

  • それぞれ「Application Key」と「Client Key」のテキストフィールドに「アプリケーションキー」と「クライアントキー」を貼り付けます

5. 動作確認

  • Unity画面で上部真ん中の実行ボタン(さんかくの再生マーク)をクリックします

画像12

  • シミュレーターが起動したら、Login&SignIn画面が表示されます
  • 初回は__SignUp__ ボタンをクリックして、会員登録を行います。

画像14

  • 2回目以降はUserNamePasswordを2つ入力してLoginボタンをタップします
  • 会員登録が成功するとログインされ、下記画面が表示されます
  • このときmBaaS上に会員情報が作成されます!
  • ログインに失敗した場合は画面にエラー内容が表示されます
  • 万が一エラーが発生した場合は、こちらよりエラー内容を確認いただけます

画像15

  • Logout ボタンをタップするとログアウトし、元の画面に戻ります
  • 登録された会員情報を使ってLogin画面からログインが可能です(操作は同様です)

画像1

解説

サンプルプロジェクトに実装済みの内容のご紹介

SDKのインポートと初期設定

ロジック

  • Loginsignin.cs,Logout.csにロジックを書いています
  • ログイン、会員登録、ログアウト部分の処理は以下のように記述されます ※ただし、左記処理以外のコードは除いています

Loginsignin.cs

// ログイン
public void Login ()
    {
        print (UserName.text);
        print (PassWord.text);

        //NCMBUserのインスタンス作成 
        NCMBUser user = new NCMBUser ();

        // ユーザー名とパスワードでログイン
        NCMBUser.LogInAsync (UserName.text, PassWord.text, (NCMBException e) => {    
            if (e != null) {
                UnityEngine.Debug.Log ("ログインに失敗: " + e.ErrorMessage);
            } else {
                UnityEngine.Debug.Log ("ログインに成功!");
                Application.LoadLevel ("LogOut");
            }
        });

    }
//会員登録
    public void Signin ()
    {
        print (UserName.text);
        print (PassWord.text);


        //NCMBUserのインスタンス作成 
        NCMBUser user = new NCMBUser ();
        
        //ユーザ名とパスワードの設定
        user.UserName = UserName.text;
        user.Password = PassWord.text;
        
        //会員登録を行う
        user.SignUpAsync ((NCMBException e) => { 
            if (e != null) {
                UnityEngine.Debug.Log ("新規登録に失敗: " + e.ErrorMessage);
            } else {
                UnityEngine.Debug.Log ("新規登録に成功");
                Application.LoadLevel ("LogOut");
            }
        });
    }

Logout.cs

// ログアウト
public void Logout_user ()
    {
        NCMBUser.LogOutAsync ((NCMBException e) => { 
            if (e != null) {
                UnityEngine.Debug.Log ("ログアウトに失敗: " + e.ErrorMessage);
            } else {
                UnityEngine.Debug.Log ("ログアウトに成功");
                Application.LoadLevel ("Loginsignin");
            }
        });

    }

参考