- Home /
Too large String Array which created from DB
I have Items data, stored in DB MySQL. There are near 600 rows. To load this data into my game i use following algorithm:
Firstly i create an array wich contains all the items and one it's string look's like: "id"->"name"->"reqLevel" .... and so on
public string[] allItemDataStr;
public IEnumerator GetItemData(string link)
{
used = true;
allDataLoaded = false;
WWW data1 = new WWW(link);
yield return data1;
allItemDataStr = data1.text.Split(new string[] { "</>" }, StringSplitOptions.None);
if (data1.error != null)
{
print("There was an error getting the high score: " + data1.error);
}
allDataLoaded = true;
}
//PHP PART
<?php
// Send variables for the MySQL database class.
$database = mysql_connect('localhost', 'login', 'pass') or die('Could not connect: ' . mysql_error());
mysql_select_db('unity') or die('Could not select database');
$query = "SELECT * FROM `item` WHERE id != ''";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
$num_results = mysql_num_rows($result);
for($i = 0; $i < $num_results; $i++)
{
$row = mysql_fetch_array($result);
echo $row['id'] . "->" . $row['name'] . "->" . $row['description'] . "->" . $row['type'] . "->" . $row['reqLevel'] . "->" . $row['reqBbSkill'] . "->" . $row['reqRangeSkill'] . "->" . $row['reqShieldSkill'] . "->" . $row['reqMageSkill'] . "->" . $row['reqLaunchSkill'] . "->" . $row['reqRace'] . "->". $row['damageMin'] . "->" .$row['damageMax'] . "->". $row['forceDamageMin'] . "->". $row['forceDamageMax'] . "->". $row['defRate'] . "->". $row['upgrade'] . "->" . $row['tradable'] . "->" . $row['buyPrice'] . "->" . $row['sellPrice'] . "->" . $row['catchType'] . "->" . $row['specialEffect']. "->" . $row['stackCount'] . "->" . $row['prefabName'] . "->" . $row['equipmentType'] . "->" . $row['worldPosX'] . "->" . $row['worldPosY'] . "->" . $row['worldPosZ'] . "</>";
}
?>
And then i have methods that return each data of item, sent in parametr
public string[] ExcelentItemData(string id)
{
for (int i = 0; i < allItemDataStr.Length; i++)
{
if (id == allItemDataStr[i].Split(new string[] { "->" }, StringSplitOptions.None)[0])
{
return StringConvertings.UTF8ToCP1251(allItemDataStr[i]).Split(new string[] { "->" }, StringSplitOptions.None);
}
else
{
continue;
}
}
return new string[] { "error, error" };
}
SO this array (allItemDataStr[], which contains all item data) causes a lot of FPS-reduction.. So give me advice please what can i do with this array?
Hope for ur answers. Thanx in advance.
Comment
Your answer
Follow this Question
Related Questions
Split string in C#? 1 Answer
String array not working 1 Answer
How to convert a string to int array in Unity C# 1 Answer
What data format should I store data in? 0 Answers
Both way expandable array for voxels 1 Answer