Jump to content
Unity Insider Forum

ArgumentOutOfRangeException - Unity/PHP/MySQL


NewbiLars

Recommended Posts

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.

 

Unity2.png

Unity1.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

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

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...