shadowdiver Geschrieben 14. Januar 2015 Melden Share Geschrieben 14. Januar 2015 Hallo, ich bin gerade mit dem Login-Script beschäftigt und bekomme zwei Fehlermeldungen bei folgendem Code: using UnityEngine; using System.Collections; public class LoginMenu : MonoBehaviour { private static string URI = "http://beispiel.de/"; public string AuthScript = "login.php"; public string hash = "hashcode"; public string levelToLoad = "farm"; public InputField email; public InputField passwd; public void Login () { Debug.Log("Login"); Debug.Log(email); Debug.Log(passwd); WWWForm form = new WWWForm(); form.AddField("email", email); form.AddField("passwd", passwd); WWW www = new WWW(URI + AuthScript, form); yield return www; if (www.error != null) { Debug.LogError (www.error); } else { Debug.Log(www.text); if (www.text == "enter game") { if (Application.CanStreamedLevelBeLoaded (levelToLoad)) { Application.LoadLevel (levelToLoad); } } www.Dispose(); } } } Zum Einen wird der Typ InputField nicht erkannt. The type or namespace name `InputField' could not be found. Are you missing a using directive or an assembly reference? Und zum Anderen gibt es einen Fehler in der Loginfunktion den ich nicht verstehe. Wo ist da ein Iterator? The body of `LoginMenu.Login()' cannot be an iterator block because `void' is not an iterator interface type Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Life Is Good Geschrieben 14. Januar 2015 Melden Share Geschrieben 14. Januar 2015 Zum einen hast du den Namespace UI nicht eingebunden, sprich, du musst entweder diesen am Anfang des Skriptes hinzufügen oder UnityEngine.Ui.InputField schreiben. Zum anderen dein yield Statement, das funkt in deiner Methode nicht. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
shadowdiver Geschrieben 15. Januar 2015 Autor Melden Share Geschrieben 15. Januar 2015 Das "using" hatte ich übersehen. Wie bekomme ich dann die Antwort des Servers? Wenn ich nur "yield www;" schreibe, wie ich ich es in der vorherigen JS-Version hatte, bekomme ich den Fehler "A local variable named `www' is already defined in this scope". Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
shadowdiver Geschrieben 17. Januar 2015 Autor Melden Share Geschrieben 17. Januar 2015 Hab es hin bekommen. Für alles die das gleiche Problem haben: In der Methode des Button folgenden Aufruf nach WWW www = new WWW(pub.URL + AuthScript, form);. StartCoroutine(DoLogin(www)); Und alles was darunter steht in eine eigene Methode auslagern. IEnumerator DoLogin(WWW www) { yield return www; if (www.error != null) { Debug.LogError (www.error); } else { Debug.Log(www.text); if (www.text == "enter game") { if (Application.CanStreamedLevelBeLoaded (levelToLoad)) { Application.LoadLevel (levelToLoad); } } www.Dispose(); //clear our form in game } } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.