プラグイン(godot sqlite)を含めてエクスポートすると、データの更新ができない問題


 godot内で、アイテムのマスターなどデータを持つことがあると思います。

jsonで持たせてもいいのですが、SQLやビューをgodot内で使えると便利。

godot sqlite、というプラグインがあり、これを使うと、

なんとデータベースsqlite3を、godot内で使えます!

使い方は以下で説明してくれています。

(ただ、英語なので、その内日本語版のものを作りたいところ・・・)

https://www.youtube.com/watch?v=j-BRiTrw_F0


ただ、構築中は問題ないのですが、これをエクスポートすると(windows)、

データの読み込みはできるんですが、更新ができなかったんですよね。。

さらに、以下方法で解決後、構築中のプロジェクトの方でも同様の問題が発生しました。


試行錯誤した結果、エクスポート先のフォルダがドキュメントだとまずいようで、

それを変えることで、なんとか出来るようになりました!

以下方法です。


→(26.1.25)こちらですが、今考えると、単にフォルダの権限の問題のようにも思います。

以下方法の内、<⑤構築中のプロジェクトでも同様の問題が発生するので、それも解消する>、にあるような、windows側の権限トラブルのメッセージから、フォルダの権限を変更する、という手続きが一番良いように思います。


方法

①以下のような、ユーザパスに、プロジェクト用のフォルダを作る。

※)最初ドキュメント(C:\Users\ユーザ名\Documents)にエクスポートしていて、

  上記バグが起きました・・・

以下フォルダを作ります。


C:\Users\ユーザ名\プロジェクト名


②そこに、エクスポートする

エクスポートすると、プロジェクト名のフォルダに、以下のようなファイルができます。

(設定によってファイルは違うかも)


③このフォルダに、構築時に使用していた、sqlite3のDBファイル(拡張子.db)をコピーする。







これがコピーされることで、exeがDBファイルを読んだり、更新するようです。

さすがに、exeの中にDBファイルは含めれない?のでしょうか・・・

また、以下のように、godotのソース内のdbの場所を、res://data.dbから、user://data.db、に変えなさい、という記載もありますが、自分はwindows版だからか、問題ありませんでした。

https://godotforums.org/d/27909-how-to-include-sqlite-database-db-in-export/4


④上記プロジェクト名のフォルダはドキュメント以外の場所なら、どこに移動しても使える

上記ですが、例えばデスクトップやDドライブ等に移動しても使えました。

しかし、なぜか、ドキュメント直下(C:\Users\ユーザ名\Documents)に置くと、更新ができなくなります。


⑤構築中のプロジェクトでも同様の問題が発生するので、それも解消する
ソースの変更や保存、プロジェクトの実行、等の後、以下のようなメッセージがwindowsで出ます。どうも、godotによるフォルダ内のファイルの編集権限が失われているようでした。(原因不明)


生成済のexeがあればそれを削除、

上記メッセージをクリックすると、以下のような画面へ遷移、操作、から、アクセスの許可を行うと、問題が解消します。


※)以下サイトの記載も参考になりました。

https://github.com/2shady4u/godot-sqlite/issues/70

コメント

このブログの人気の投稿

初心者に良い本は? → 『 ゆるっとはじめるGodot Engine ゲームプログラミング 』

他シーンからシグナルを送る方法