Проблема с БД в Unity
Делаю мобильное 2d приложение на Unity, которое напрямую взаимодействует с БД с хостинга. Проблема заключается в том, что когда при запуске приложения (или при нажатии кнопки - точки входа в приложение) скрипт берет информацию из БД и заносит её в специальный словарь, в котором она хранится на протяжении использования приложения. Класс DB описан для хранения объекта базы данных:
public class DB
{
MySqlConnection conn = new MySqlConnection("server=name;port=3306;username=name;password=pass;database=name");
public void openConnection()
{
if (conn.State == System.Data.ConnectionState.Closed)
{
conn.Open();
}
}
public void closeConnection()
{
if (conn.State == System.Data.ConnectionState.Open)
{
conn.Close();
}
}
public MySqlConnection getConnection()
{
return conn;
}
}
В строках name и pass указаны соответствующие данные для подключения к БД.
Также имеется статический класс, который хранит всю информацию, которая используется во время работы приложения, и в нём хранится объект класса DB, а также словарь, который будет хранить информацию, взятую из БД в дальнейшем (ключ - id из таблицы, список массивов из строк - остальные поля, нужные для дальнейшей работы):
public static class Params
{
public static Dictionary<int, List<string[]>> pictures = new Dictionary<int, List<string[]>>();
public static DB dataBase= new DB();
}
Далее, при запуске приложения работает скрипт, который добавляет нужную информацию в словарь pictures:
Params.dataBase.openConnection();
using (MySqlDataReader reader = new MySqlCommand("SELECT * from genre", Params.dataBase.getConnection()).ExecuteReader())
{
while (reader.Read())
Params.pictures.Add(int.Parse(reader[0].ToString()), new List<string[]>());
}
for (int i = 1; i <= Params.pictures.Count; i++)
{
var a = Params.pictures.Keys;
MySqlCommand pictureSelect = new MySqlCommand($"SELECT genre.DENOMINATION as GENRE, picture.DENOMINATION, picture.DESCRIPTION, SPRITE, artist.FORENAME as artist_forename FROM artist INNER JOIN picture ON picture.id_ARTIST = artist.id inner join genre on picture.id_genre = genre.id WHERE picture.id_genre = {i}", Params.dataBase.getConnection());
using (MySqlDataReader reader = pictureSelect.ExecuteReader())
{
while (reader.Read())
Params.pictures[i].Add(new string[] { reader[1].ToString(), reader[4].ToString(), reader[2].ToString(), reader[3].ToString() });
}
}
Params.dataBase.closeConnection();
Результат запроса "Select * from genre":

пример результата запроса picutreSelect:

Суть проблемы: Когда я запускаю приложение в Unity, то всё работает, но когда я делаю билдом apk, устанавливаю на устройство, запускаю, то ничего не происходит, данные не получаются из БД. Я попробовал сделать поле Text на сцене, и там получаю вот такую ошибку: 
Ответы (1 шт):
Зацени у этого типа. Он MySql.Data.xml юзает. У него целый проет примера клиента MySQL для анлройда на юнити.
Ещё возможно у андройда понадобится network permissions (Player Settings).
