NewbiLars Geschrieben 12. September 2017 Melden Share Geschrieben 12. September 2017 Hey Leute, ich hab da ein Problem und sehe eigentlich keinen Fehler - hoffe ihr könnt mir hier ein wenig bei weiterhelfen. Und Zwar greif ich mit meinem C#-Script über Unity auf meine MySQL Datenbank (XAMPP Apache) zu, hole mir die UserDaten (level etc.) und will diese nun als PlayerPref abspeichern. es Funktioniert auch mit allen Werten, außer beim letzten Wert sofern ich diesen mit einfüge im Script kommt eine Fehlermeldung beim ausführen zu stande public class DatenLader : MonoBehaviour { public string[] items; public Text usernameAnzeige, userFraktionAnzeige, userLevelAnzeige, userEPAnzeige, userCreditsAnzeige, userAllianzAnzeige; // public Text userMapAnzeige; // Use this for initialization void Start () { usernameAnzeige.text = PlayerPrefs.GetString("username"); StartCoroutine (ladeDaten ()); userFraktionAnzeige.text = PlayerPrefs.GetString ("userFraktion"); userLevelAnzeige.text = PlayerPrefs.GetString ("userLevel"); userEPAnzeige.text = PlayerPrefs.GetString ("userEp"); userCreditsAnzeige.text = PlayerPrefs.GetString ("userCredits"); userAllianzAnzeige.text = PlayerPrefs.GetString ("userAllianz"); // userMapAnzeige.text = PlayerPrefs.GetString ("userMap"); } IEnumerator ladeDaten() { WWW itemsData = new WWW ("http://localhost/ConquestofGalaxy/ladeUserinfo.php"); yield return itemsData; string itemsDataString = itemsData.text; print (itemsDataString); items = itemsDataString.Split(';'); PlayerPrefs.SetString("userFraktion", GetDataValue(items[0], "Fraktion:")); PlayerPrefs.SetString("userLevel", GetDataValue(items[0], "|Level:")); PlayerPrefs.SetString("userEP", GetDataValue(items[0], "|EPs:")); PlayerPrefs.SetString ("userCredits", GetDataValue (items[0], "|Credits:")); PlayerPrefs.SetString ("userAllianz", GetDataValue (items[0], "|Allianz:")); // PlayerPrefs.SetString ("userMap", GetDataValue (items[0], "|Map:")); PlayerPrefs.Save (); } string GetDataValue(string data, string index ) { string value = data.Substring (data.IndexOf (index) + index.Length); value = value.Remove(value.IndexOf("|")); return value; } } so funktioniert es, aber wenn ich die Rauskommentierten zeilen einfüge, kommt die Fehlermeldung. ist vlt ein wenig viel zum lesen. Für Verständnissfragen zum Code oder wenn mehr Hintergrund benötigt wird, was ich jetzt vlt unwissendlich ausgelassen habe - einfach drauf ansprechen. Hoffe ihr könnt mir da weiterhelfen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Torigas Geschrieben 12. September 2017 Melden Share Geschrieben 12. September 2017 Also was die Exception angibt ist erstmal, dass du dem Remove Befehl -1 übergibst. https://msdn.microsoft.com/en-us/library/k8b1470s(v=vs.110).aspx IndexOf liefert -1 zurück, wenn der gesuchte Teil nicht gefunden werden konnte. Zudem hast du in deinem Daten Lader eine leere Zeile im Items arrays. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
NewbiLars Geschrieben 12. September 2017 Autor Melden Share Geschrieben 12. September 2017 Danke Torigas, hab den Fehler nun auch gefunden. wie im 2. Bild zu sehen fehlt bei "Element 0 " am ende bei Map:0 das "|" zum selektieren - wie es im C#-Script angegeben ist. Dieses "|" musste ich also in der PHP Datei mit einfügen. Wie ich solche "kleinen" Fehler hasse, diese erstmal zu finden. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 13. September 2017 Melden Share Geschrieben 13. September 2017 Und genau wegen sowas baut man keinen String mit eigener Formatierung, sondern benutzt JSON oder was vergleichbares Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
NewbiLars Geschrieben 13. September 2017 Autor Melden Share Geschrieben 13. September 2017 sagt mir jetzt nichts, muss ich bei gelegenheit mal was zu lesen. Hab allgemein nicht sonderlich viel gefunden zu Datenbank zugriffe in Unity & hab mich dann mit den Tutorials rumgeschlagen die ich so gefunden hab Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 13. September 2017 Melden Share Geschrieben 13. September 2017 Naja, statt zeug;bla;blub gibt es halt bereits Datenformate, die sich durchgesetzt haben und für die es bereits fertige Lese-und Schreibe-Bibliotheken gibt. JSON sieht z.B. so aus: { "name" : "Hannes", "score" : 42, "color" : "blue" } Das hier wäre ein Beispiel für XML: <player> <name>Hannes</name> <score>42</score> <color>blue</color> </player> 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.