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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Kii Cloud

Kii Cloudは、モバイルアプリやIoT機器向けのBaaS (Backend As A Service)です。機器管理、データ管理、プッシュ通知、位置情報、サーバコード、分析等の機能があります。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

575閲覧

UnityとKiiのサインアップ・ログイン登録と連携で困っています

7st

総合スコア6

Kii Cloud

Kii Cloudは、モバイルアプリやIoT機器向けのBaaS (Backend As A Service)です。機器管理、データ管理、プッシュ通知、位置情報、サーバコード、分析等の機能があります。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2018/05/25 08:27

編集2018/05/25 08:48

(至急できれば5/27まで)

Unityのログイン画面をKiiクラウドと連携してサインアップとログインの登録に成功させてKiiクラウド上でUnityとKiiクラウドが連携できているのが確認する

タイトル通りです。UnityとKiiクラウドを連携してユーザーIDとパスワードのデータを登録するために、簡単なログインとサインアップ画面を使用して、サインアップボタンとログインボタンを押すとuserIDとパスワードをkiiクラウド上のデータに登録して、再度同じユーザIDとパスワードで「ログインするとログイン成功しました」という表示をコンソールを通じて確認する作業をしています。
ですが、デバッグでユーザIDとパスワードを入力し終えてサインアップのボタンを押すと以下のエラーメッセージが届きました。ログインの場合も仮に同じエラーがあった際は同じ対処を行うのでしょうか。

1.InputなどのGameObject宣言したオブジェクトをパーツごとに入れる
2.デバッグを行い、バグがないか確認する。

ArgumentException: Invalid username format:

エラーメッセージ
KiiCorp.Cloud.Storage.KiiUser+Builder.WithName (System.String userName)
KiiCorp.Cloud.Storage.KiiUser.BuilderWithName (System.String userName)
LoginManager.Signup () (at Assets/LoginManager.cs:54)
UnityEngine.Events.InvokableCall.Invoke () (at /Users/builduser/buildslave/unity/build/Runtime/Export/UnityEvent.cs:166)
UnityEngine.Events.UnityEvent.Invoke () (at /Users/builduser/buildslave/unity/build/Runtime/Export/UnityEvent_0.cs:58)
UnityEngine.UI.Button.Press () (at /Users/builduser/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:36)
UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at/Users/builduser/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:50)
UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor) (at /Users/builduser/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:261)
UnityEngine.EventSystems.EventSystem:Update()

該当のソースコード

using UnityEngine;
using UnityEngine.UI;
using KiiCorp.Cloud.Storage;

public class LoginManager : MonoBehaviour {

private string userId;
private string passWord;

private InputField inputFieldUserId; private InputField inputFieldPassWord;

public GameObject InputFieldUserId;
public GameObject InputFieldPassWord;
public GameObject ButtonSignup;
public GameObject ButtonLogin;

void Start() { // コンポーネントの取得 inputFieldUserId = GameObject.Find("InputFieldUserId").GetComponent<InputField>(); inputFieldPassWord = GameObject.Find("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をビルドして、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 + " がログインしました"); }); }

}

Unity ソースコード

試したこと

ボタンの接続先が正しく接続しているか確認した
InputFieldUserIdのボタン接続先
(On Value ChangedとOn end Edit共通)
InputFieldUserId
InputField input.text

InputFieldPassWordの接続先
(On Value ChangedとOn end Edit共通)
InputFieldPassWord
InputField.text

On Click
ButtonSignUpの接続先
ButtonSignup
LoginManagerSignup

ButtnLoginの接続先
ButtonLogin
LoginManager.Login

ここに問題に対して試したことを記載してください。
スペルミスがないか確認した
ボタンとインプットUserIdとPasswordが正しく動いているか確認した

補足情報(FW/ツールのバージョンなど)

Kiiクラウド
Unity(1.0f2)
ここにより詳細な情報を記載してください。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakura_hana

2018/05/26 06:01

スクリプトは```で囲み、改行を正しく記載してください。また、Signup()に入った段階で本当にuserIdに値が入っているか、「Debug.Log(userId);」などを入れて確認してください。(エラー文から察するにuserIdがnullではないかなーと思います)
7st

2018/05/26 13:31

ありがとうございます。スプリクトを’’で囲み正しく改行した上で()にusernameを入れたところ、エラーが消えました。
sakura_hana

2018/05/27 04:38

解決したなら解決方法を回答として投稿し、解決済みとしてください。
guest

回答1

0

自己解決

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

public class NewBehaviourScript : MonoBehaviour
{

private InputField inputField; private InputField inputFieldPassword; public GameObject InputFieldName; public GameObject LoginButton; public GameObject InputFieldPassword; public GameObject NewLoginButton; // Use this for initialization void Start() { inputField = InputFieldName.GetComponent<InputField>(); inputFieldPassword = InputFieldPassword.GetComponent<InputField>(); } /* public void InputLogger(){ string inputValue = inputField.text; Debug.Log(inputValue); IniInputField(); } void IntInputField(){ inputField.text = ""; inputFieldActivaInputField(); }*/ public void OnClick() { NCMBObject testClass = new NCMBObject("Login"); testClass["Name"] = inputField.text; testClass["Password"] = inputFieldPassword.text; testClass.SaveAsync(); } public void LoginClick() { // string Name = testClass["Name"].ToString(); // string Password = testClass["Password"].ToString(); NCMBQuery<NCMBObject> query = new NCMBQuery<NCMBObject>("Login"); query.WhereEqualTo("Name", inputField.text); query.FindAsync((List<NCMBObject> objList, NCMBException e) => { if (e != null) { //通信エラーが発生した UnityEngine.Debug.Log ("ログインできません " ); } else { //通信に成功した if (objList.Count == 1) { //データが一つの時 string Password = objList[0]["Password"].ToString(); if (Password == inputFieldPassword.text) { UnityEngine.Debug.Log("ログイン成功しました"); } else { UnityEngine.Debug.Log("ログインに失敗しました"); } } else { UnityEngine.Debug.Log("データが複数あります"); } } }); } // Update is called once per frame void Update() { }

}

投稿2018/05/27 12:18

7st

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問