(至急できれば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)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー