LoginSignup
1
1

More than 1 year has passed since last update.

【コピペで実装】Unityで作ったゲームにログイン機能を追加してみた

Posted at

概要

Unityで作ったアプリにニフクラ mobile backendを使って無料でログイン機能を追加する方法を紹介します👌
コピペで実装できるので初心者の方でも簡単に実装できます👫

使うサービス

  • ニフクラ mobile backend(Unity SDK)

無料で利用可能できるサービスで、簡単にバックエンドの開発ができるニフクラ mobile backendを利用してランキング機能を実装していきます。
以下より会員登録を行うと、環境構築する必要なしにすぐ利用できます👩‍💻👨‍💻

会員登録

Unity SDKのドキュメントはこちらです👀
ニフクラ mobile backendのサービスの概要はこちらをご参照ください👀

Unityとの連携方法

ニフクラ mobile backendのクイックスタートで画像を用いながらわかりやすく説明しているので 是非以下を参考に連携させてみてください😃✨

▼イメージ
image.png

クイックスタート

実装方法

今回は1つのファイルに新規会員登録・ログイン・ログアウト機能を実装していきます👩🏼‍🤝‍🧑🏻💨

使用するスクリプトテンプレートなど実装前のコード

新規会員登録・ログイン・ログアウト処理を書く前の状態は以下のような感じです。
userNameとpasswordを入力するInputFieldを作成しています。
新規会員登録をする際は↓の画像と同じようなシーンを作成します。
image.png

既に会員登録をしている場合は、↓のInputFieldにユーザー名とパスワードを入力してログインします。
image.png

現在は以下のコードだけ書いています。

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using NCMB;
using UnityEngine.SceneManagement; 

public class ***スクリプト名*** : MonoBehaviour
{
    public InputField UserName;
    public InputField PassWord;
    private string currentPlayerName;

   //ここの中に新規会員登録・ログイン・ログアウト処理を書いていきます
}

※1画面で新規会員登録とログインをするとデータが保存できないエラーが起きることがあります😥
エラー内容と解決方法は以下のブログをご参照ください。
https://blog.mbaas.nifcloud.com/entry/2020/10/01/145149

ログイン機能

(★の部分が今回ニフクラ mobile backendのコードです。他の箇所はゲームの処理です。)

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 ("ログインに成功!");
                 //画面遷移
                SceneManager.LoadScene (*);//遷移させたいシーンを指定
            }
        });
    }

新規会員登録

public void SignUp()
    {
        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);
                SceneManager.LoadScene (*); //遷移させたいシーンを指定
            } else {
                UnityEngine.Debug.Log ("新規登録に成功");
                //★カレントユーザーを確認
                NCMBUser currentUser = NCMBUser.CurrentUser;
                    if (currentUser != null) {
                        UnityEngine.Debug.Log ("ログイン中のユーザー: " + currentUser.UserName);
                        Login();
                    } else {
                        UnityEngine.Debug.Log ("未ログインまたは取得に失敗");
                    }
                 //画面遷移
                SceneManager.LoadScene (*);//遷移させたいシーンを指定
            }
        });
    }

ログアウト

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

結果

ニフクラ mobile backendの会員管理を見てみると、ちゃんと登録されています😋❣
image.png

最後に

以上で、ログイン機能が追加できました!
さらに、別の記事でランキング機能を追加する記事も公開しているので、是非ご覧ください👁‍🗨📚

不明点があればユーザーコミュニティへ質問してみてください!(無料プランから利用可能)
有償プランを契約している方はテクニカルサポートで個別にサポートしていただけます!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1