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();
}
言及する価値があるかもしれませんが、次のように宣言されている ManagerScript から InitialSavingsToDB 関数を呼び出します。
public class ManagerScript : MonoBehaviour {
...
...
...
private void Start ()
{
...
testofsql.SQLiteInit(); // initialisation of the Data Base
...
...
...
}
...
...
}
したがって、私のコードは正常に動作し、Unity 3d エディターからゲームをテストすると、データは完全に保存されます。コンパイルした瞬間、ゲーム内で続行しません。エラーはありません。走り回ることもできます。しかし、ゲームは行き詰まっています。
正直なところ、これを解決する方法がわかりませんでした。Unityでsqliteを動作させるために2週間グーグルで検索し、エラーを回避しようとし、問題の原因を見つけて無知になるまですべてをデバッグしました...誰かが助けてくれることを願っています.
どうもありがとうございました!
乾杯、ペトル