search
LoginSignup
1

posted at

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

概要

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

最後に

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

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

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
What you can do with signing up
1