Я столкнулся с проблемой, что моя игра отлично работает в Unity 3d IDE, но в тот момент, когда я ее компилирую, она останавливается в определенный момент. На самом деле, когда мой код sqlite выполняется. Но не только при инициализации!
Итак, этот код работает нормально:
/// <summary>
/// Basic initialization of SQLite This will be activated by the manager script
/// </summary>
public static void SQLiteInit ()
{
string SQL_DB_LOCATION = @"URI=file:C:\temp\inlusio_data\InlusioDB.sqlite";
mConnection = new SqliteConnection(SQL_DB_LOCATION);
mCommand = mConnection.CreateCommand();
mConnection.Open();
ExecuteQuerry("PRAGMA page_size = " + "4096" + ";");
ExecuteQuerry("PRAGMA synchronous = " + "1" + ";");
mConnection.Close();
}
Код ExecudeQuerry, кажется, работает нормально, так как сработала приведенная выше часть моего кода. Вот код ExecudeQuerry:
public static void ExecuteQuerry (string sqlcomand)
{
Debug.Log(sqlcomand);
mCommand.CommandText = sqlcomand;
mCommand.ExecuteNonQuery();
}
проблемная часть, на которой игра зависает:
public static void InitialSavingsToDB (string chiffre, string EasyDelay, string HardDealy, string session)
{
/// Subject code
ExecuteQuerry("INSERT INTO 'Subject'('Subject_Number','EasyDifficultyLevel','HardDifficultyLevel') VALUES ('" + chiffre + "','" + EasyDelay + "','" + HardDealy + "');");
}
Я тоже так пробовал:
public static void InitialSavingsToDB (string chiffre, string EasyDelay, string HardDealy, string session)
{
/// Subject code
mConnection.Open();
mCommand.CommandText = "INSERT INTO 'Subject'('Subject_Number','EasyDifficultyLevel','HardDifficultyLevel') VALUES ('" + chiffre + "','" + EasyDelay + "','" + HardDealy + "');";
mCommand.ExecuteNonQuery();
mConnection.Close();
}
Возможно, стоит упомянуть, что я вызываю функцию InitialSavingsToDB из моего ManagerScript, которая объявлена как
public class ManagerScript : MonoBehaviour {
...
...
...
private void Start ()
{
...
testofsql.SQLiteInit(); // initialisation of the Data Base
...
...
...
}
...
...
}
Итак, мой код работает нормально, данные отлично сохраняются, когда я тестирую игру из редактора Unity 3d. В тот момент, когда я его компилирую, он просто не продолжается в игре. Ни ошибок, ничего. Я даже могу бегать. Но игра застряла.
Я честно не знал, как это решить. Уже 2 недели гуглил, чтобы заставить sqlite работать в Unity, старался избегать ошибок, все отлаживал, пока не нашел источник проблемы и не понял... надеюсь, кто-нибудь может помочь.
Большое спасибо!
Здоровья, Петр