Back to tech

Unityでデータベース操作

2 min read
Table of Contents
『UnityでSQLite』
ameblo.jp
image

基本、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でデータベースをするサンプルプログラム
github.com
image

参考文献

  1. http://ameblo.jp/mk-soundtrack/entry-12086698310.html
  2. http://qiita.com/hiroyuki7/items/5335e391c9ed397aee50
  3. http://qiita.com/hiroyuki7/items/5335e391c9ed397aee50