2017-01-21 10 views
0

私はC#で新しく、自分のユーザー名とパスワードプログラムを稼働させることができません。ユニティでログインウィンドウを作成する方法

ユーザーからの入力を取得し、辞書に保存したアカウントの詳細と照合する必要があります。

+0

あなたのコードは大丈夫だと思われますが、あなたが表示していないコードに問題があると思われます。あなたは 'username'と' password'変数を正しく設定していますか? –

+0

文法を訂正するためにあなたの質問を編集し、IDEを除外するために画像を切り取る自由を取った。あなたがそれに満足していない場合は、編集をロールバックしたり、独自の編集を加えることができます。 –

+0

私はIDEを使用していないが、Unityを使用しているので、私は(ユーザー名)と(パスワード)を公開GameObjectsにリンクする必要があるので、Andrewと@Gian Paoloに感謝します。 – mrknt1

答えて

2

Console.WriteLineはUnityでは機能しません。 Debug.Logを使用する必要があります。

私はC#で新しいですし、私のユーザー名とパスワードプログラムを動作させることができません。

.Create 2 InputFileds。 1つはのユーザー名、もう1つはのパスワードです。

あなたはゲームオブジェクトに行くことによってそれを行うことができます - >UI - >入力フィールド

.Create提出Button

あなたはゲームオブジェクトに行くことによってそれを行うことができます - >UI - それは、それがクリックされたときにそのように>ボタン

.Subscribe、adminDetails()Button onClickイベントを提出関数が呼び出されます。

これだけです。入力はInputField.textで取得できます。

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

public class AdminLogin : MonoBehaviour 
{ 

    public InputField userNameField; 
    public InputField passwordField; 
    public Button loginButton; 

    void Start() 
    { 
     //Subscribe to onClick event 
     loginButton.onClick.AddListener(adminDetails); 
    } 

    Dictionary<int, string> staffDetails = new Dictionary<int, string> 
    { 
     {101,"femi1998" }, 
     {102,"kwaks1999" }, 
     {103,"eman1999" } 
    }; 


    public void adminDetails() 
    { 
     //Get Username from Input then convert it to int 
     int userName = Convert.ToInt32(userNameField.text); 
     //Get Password from Input 
     string password = passwordField.text; 

     string foundPassword; 
     if (staffDetails.TryGetValue(userName, out foundPassword) && (foundPassword == password)) 
     { 
      Debug.Log("User authenticated"); 
     } 
     else 
     { 
      Debug.Log("Invalid password"); 
     } 
    } 
} 

は両方がusernameFieldのPASSWORDFIELDloginButtonエディタでスロットにInputFieldsButtonを作成しドラッグすることを忘れないでください。

+0

エラーをダブルクリックしてください。それは起こったコード行を示します。コメントのコード行を – Programmer

+0

に記入してください。 'userNameField.text'が空(" ")であるか、ユーザー名ボックスに文字列を入力してintに変換しようとしたため、エラーが発生します。 – Programmer

+0

'int userName = Convert.ToInt32(userNameField.text);' ** ** 'int userName;で置き換えてください。 Int32.TryParse(passwordField.text、out userName); ' – Programmer

関連する問題