質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
ニフティクラウドmobile backend

ニフティクラウドmobile backend (mBaaS)はニフティが提供するBaasサービスです。プッシュ通知、データストア、ファイルストア、会員管理・認証機能などのバックエンド機能をクラウドから提供しています。 Andoird/iOS/JavaScript/Unityと各種SDKに対応しています。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

解決済

Unityでニフクラを使ってログイン機能を実装したいです

ShotaTakasaki
ShotaTakasaki

総合スコア0

ニフティクラウドmobile backend

ニフティクラウドmobile backend (mBaaS)はニフティが提供するBaasサービスです。プッシュ通知、データストア、ファイルストア、会員管理・認証機能などのバックエンド機能をクラウドから提供しています。 Andoird/iOS/JavaScript/Unityと各種SDKに対応しています。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

1回答

0評価

1クリップ

831閲覧

投稿2019/04/11 11:01

Unityでログイン機能を実装したいです

そこで、こちらを参考に、
シーンファイルのダウンロード
ニフクラ mobile backendの初期設定
mobile backendと通信して、ログインや新規登録を行う
ログイン画面と新規登録画面を切り替える

と順にやっていったのですが
シーンに遷移ができません

ログイン情報の登録はできているように思います
イメージ説明

因みに別のゲームで実装したかったので、新しくプロジェクトを作成し、行いました
遷移したいシーンもとりあえずStageという名で作り、Build&Settingから登録も行いました
念の為、シーンの遷移のスクリプトが古かったので、
using UnityEngine.SceneManagement;を追加して
SceneManager.LoadScene("Stage");に変更したりもしました

以下スクリプトですが

csharp:Player.cs

using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; public class LogInManager : MonoBehaviour { private GameObject guiTextLogIn; // ログインテキスト private GameObject guiTextSignUp; // 新規登録テキスト // ログイン画面のときtrue, 新規登録画面のときfalse private bool isLogIn; // ボタンが押されると対応する変数がtrueになる private bool logInButton; private bool signUpMenuButton; private bool signUpButton; private bool backButton; // テキストボックスで入力される文字列を格納 public string id; public string pw; public string mail; void Start() { FindObjectOfType<UserAuth>().logOut(); // ゲームオブジェクトを検索し取得する guiTextLogIn = GameObject.Find("GUITextLogIn"); guiTextSignUp = GameObject.Find("GUITextSignUp"); isLogIn = true; guiTextSignUp.SetActive(false); guiTextLogIn.SetActive(true); } void OnGUI() { // ログイン画面 if (isLogIn) { drawLogInMenu(); // ログインボタンが押されたら if (logInButton) FindObjectOfType<UserAuth>().logIn(id, pw); // 新規登録画面に移動するボタンが押されたら if (signUpMenuButton) isLogIn = false; } // 新規登録画面 else { drawSignUpMenu(); // 新規登録ボタンが押されたら if (signUpButton) FindObjectOfType<UserAuth>().signUp(id, mail, pw); // 戻るボタンが押されたら if (backButton) isLogIn = true; } // currentPlayerを毎フレーム監視し、ログインが完了したら if (FindObjectOfType<UserAuth>().currentPlayer() != null) SceneManager.LoadScene("Stage"); } private void drawLogInMenu() { // テキスト切り替え guiTextSignUp.SetActive(false); guiTextLogIn.SetActive(true); // テキストボックスの設置と入力値の取得 GUI.skin.textField.fontSize = 20; int txtW = 150, txtH = 40; id = GUI.TextField(new Rect(Screen.width * 1 / 2, Screen.height * 1 / 3 - txtH * 1 / 2, txtW, txtH), id); pw = GUI.PasswordField(new Rect(Screen.width * 1 / 2, Screen.height * 1 / 2 - txtH * 1 / 2, txtW, txtH), pw, '*'); // ボタンの設置 int btnW = 180, btnH = 50; GUI.skin.button.fontSize = 20; logInButton = GUI.Button(new Rect(Screen.width * 1 / 4 - btnW * 1 / 2, Screen.height * 3 / 4 - btnH * 1 / 2, btnW, btnH), "Log In"); signUpMenuButton = GUI.Button(new Rect(Screen.width * 3 / 4 - btnW * 1 / 2, Screen.height * 3 / 4 - btnH * 1 / 2, btnW, btnH), "Sign Up"); } private void drawSignUpMenu() { // テキスト切り替え guiTextLogIn.SetActive(false); guiTextSignUp.SetActive(true); // テキストボックスの設置と入力値の取得 int txtW = 150, txtH = 35; GUI.skin.textField.fontSize = 20; id = GUI.TextField(new Rect(Screen.width * 1 / 2, Screen.height * 1 / 4 - txtH * 1 / 2, txtW, txtH), id); pw = GUI.PasswordField(new Rect(Screen.width * 1 / 2, Screen.height * 2 / 5 - txtH * 1 / 2, txtW, txtH), pw, '*'); mail = GUI.TextField(new Rect(Screen.width * 1 / 2, Screen.height * 11 / 20 - txtH * 1 / 2, txtW, txtH), mail); // ボタンの設置 int btnW = 180, btnH = 50; GUI.skin.button.fontSize = 20; signUpButton = GUI.Button(new Rect(Screen.width * 1 / 4 - btnW * 1 / 2, Screen.height * 3 / 4 - btnH * 1 / 2, btnW, btnH), "Sign Up"); backButton = GUI.Button(new Rect(Screen.width * 3 / 4 - btnW * 1 / 2, Screen.height * 3 / 4 - btnH * 1 / 2, btnW, btnH), "Back"); } } ``` ``` UserAuth.cs using UnityEngine; using System.Collections; using NCMB; using System.Collections.Generic; public class UserAuth : MonoBehaviour { private string currentPlayerName; // mobile backendに接続してログイン ------------------------ public void logIn(string id, string pw) { NCMBUser.LogInAsync(id, pw, (NCMBException e) => { // 接続成功したら if (e == null) { currentPlayerName = id; } }); } // mobile backendに接続して新規会員登録 ------------------------ public void signUp(string id, string mail, string pw) { NCMBUser user = new NCMBUser(); user.UserName = id; user.Email = mail; user.Password = pw; user.SignUpAsync((NCMBException e) => { if (e == null) { currentPlayerName = id; } }); } // mobile backendに接続してログアウト ------------------------ public void logOut() { NCMBUser.LogOutAsync((NCMBException e) => { if (e == null) { currentPlayerName = null; } }); } // 現在のプレイヤー名を返す -------------------- public string currentPlayer() { return currentPlayerName; } } ```

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

ニフティクラウドmobile backend

ニフティクラウドmobile backend (mBaaS)はニフティが提供するBaasサービスです。プッシュ通知、データストア、ファイルストア、会員管理・認証機能などのバックエンド機能をクラウドから提供しています。 Andoird/iOS/JavaScript/Unityと各種SDKに対応しています。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。