友人がUnityでデータベースを操作したいということで、操作できるまでに時間が掛かったので足跡として残しておきます。
基本、qiitaに記載している方法ですが、このやり方だとwindowsでデータベース操作することができません。
少し手を加えることでできるようになりました。
- データベースを作成するために、SQLiteのツールをダウンロードします
ここ展開し、展開したディレクトリでcmdを開きます
以下のコマンドを打つ(データベースを作成しています)C:\sqlite-tools-win32-x86-3150200> sqlite3 config.db sqlite> create table user(id integer, name text, old integer, address text); sqlite> .exit
- SQLiteUnityKitをクローンまたはダウンロードします
ここ - SQLiteのバイナリをダウンロードします
windows32bitの場合:http://sqlite.org/2016/sqlite-dll-win32-x86-3150200.zip
windows64bitの場合:http://sqlite.org/2016/sqlite-dll-win64-x64-3150200.zip - Unityを開きます
- Assetsに各種ダウンロードしたファイル以下のように入れます
Assets\Plugin\Android\libsqlite3.so
(32bitの場合)Assets\Plugin\x86\sqlite3.dll
(64bitの場合)Assets\Plugin\x64\sqlite3.dll
Assets\Script\DataTable.cs
Assets\Script\SqliteDatabase.cs - データベースを操作するためのスクリプトファイルを作成します
ここではDatabase.csとしていますusing UnityEngine; using System.Collections; public class Database : MonoBehaviour { // Use this for initialization void Start () { // Insert SqliteDatabase sqlDB = new SqliteDatabase("config.db"); string query = "insert into user values(1, 'hoge', 20, 'america')"; sqlDB.ExecuteNonQuery(query); // Select string selectQuery = "select * from user"; DataTable dataTable = sqlDB.ExecuteQuery(selectQuery); string name = ""; foreach(DataRow dr in dataTable.Rows){ name = (string)dr["name"]; Debug.Log ("name:" + name); } } // Update is called once per frame void Update () { } }
- GameObjectを作成し、作成したスクリプトをAddComponentします
Gitにソースコード上げました
GitHub - Momijinn/SampleSQLiteUnityKit: Unityでデータベースをするサンプルプログラム
Unityでデータベースをするサンプルプログラム. Contribute to Momijinn/SampleSQLiteUnityKit development by creating an account on GitHub.
参考文献
- http://ameblo.jp/mk-soundtrack/entry-12086698310.html
- http://qiita.com/hiroyuki7/items/5335e391c9ed397aee50
- http://qiita.com/hiroyuki7/items/5335e391c9ed397aee50
コメント