【やりたい事】
SQLiteUnityKitによるdb処理を、Linuxのレンタルサーバ(スターサーバ)上で動作させたい
【現状と問題点】
・Unity Editor上では問題なく動作する。
・WebGLでビルド後、Linuxサーバ上にデプロイし、SQLiteの処理を動作させると動作しない。(動作的にはフリーズする。暫くすると"ページが応答していません"とのダイアログが表示される)
【環境】
・Unity 2020.2.1f1 Personal
・レンタルサーバ(スターサーバ)のOS→Linux
・SQLiteUnityKit(https://github.com/Busta117/SQLiteUnityKitから取得)
・libsqlite3.soファイル(https://github.com/Busta117/SQLiteUnityKitから取得)
・.dbファイルの置き場所→Assetsフォルダ直下(デプロイ後はルートディレクトリ)
▲libsqlite3.soファイルの置き場所→不明。知りたい箇所です。現状は/Plugins/GitHub/Editorにとりあえず置いて弄っていました。Editor用のwindowsファイル(libsqliteX.dll)は/Plugins/x86_64内。
・デプロイ後の.dbファイルのPermission→テストのため777に設定、FFFTP上で確認。
・WebGLでビルド後、Linuxレンタルサーバへデプロイし、Windowsのブラウザでアクセスしています。(追記)
コード
// 書き込み public bool AddPlayersDb() { var nameFieldRegister = GameObject.Find("InputField_RegisterName").GetComponent<InputField>(); var path = Application.dataPath; var fileName = "players.db"; var db = new SqliteDatabase(path + "/" + fileName); var query = db.ExecuteQuery("SELECT * FROM players"); var loginName = nameFieldRegister.text; foreach (var row in query.Rows) { if (loginName == row["name"].ToString()) { if (loginName != "Nameless") { return false; } } } Guid gu = Guid.NewGuid(); // GUID string guid = gu.ToString(); var len = guid.Length; var name = nameFieldRegister.text; var id = guid.Substring(len - 12); db.ExecuteQuery($"INSERT INTO players (name, id) " + $"VALUES ('{name}', '{id}')"); return true; } // 読み込み public bool LoadPlayersDb() { var path = Application.dataPath; var fileName = "players.db"; var db = new SqliteDatabase(path + "/" + fileName); var query = db.ExecuteQuery("SELECT * FROM players"); nameField = GameObject.Find("InputField_LoginName").GetComponent<InputField>(); idField = GameObject.Find("InputField_LoginID").GetComponent<InputField>(); var loginName = nameField.text; var loginId = idField.text; foreach (var row in query.Rows) { if (loginName == row["name"].ToString() && loginId == row["id"].ToString()) { gm = GameObject.Find("GameManager").GetComponent<GameManager>(); gm.playerName = row["name"].ToString(); gm.playerId = row["id"].ToString(); return true; } } return false; }
まず、libsqlite3.soファイルの置き場所が分かりません。
Androidやwindowsは検索すれば見つかったのですが、プラットフォームがLinuxの場合のプラグインファイルの置き場所については見つける事ができませんでした。
公式マニュアルの
https://docs.unity3d.com/ja/2020.3/Manual/PluginInspector.html
も確認すると、一番下に各プラットフォームの場合における.dllや.so等のプラグインファイルの置き場所について記載があり、WindowsやAndroid、iOSは確認できるのですが、Linuxの場合は記載ないようで、分かりませんでした。
また、それ以外にもデプロイ後にフリーズする問題につきまして、分かることがありましたら、ご教授いただきたく思います。
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/01 08:22
2021/05/01 08:44
2021/05/01 09:17
2021/05/01 09:19
2021/05/01 17:53
2021/05/02 04:46