Unity에서 SQLite를 처리하는 방법

iOS나 Android에서는 Application 내에 데이터를 저장하는 방법으로 SQLite가 사용되고 있습니다.

데이터가 적다면 PlayerPrefs를 사용하면 충분하지만 많은 양의 데이터를 처리 할 때 SQLite를 사용할 수 있다면 편리합니다.

또, SQLite는 다른 개발 언어로도 사용할 수 있으므로, Objective-C나 Java로의 개발하는 경우에서도 데이터는 그대로 사용할 수 있으므로 범용성이 뛰어납니다.

이번에는 SQLite가 미리 설치된 Mac에서 시도했습니다.
* OS X 10.9.5
* SQLite 3.7.13

SQLiteUnityKit을 github에서 가져옵니다.



이번에는 Unity에서 SQLite를 사용하는 방법으로 Github에있는 SQLiteUnityKit을 사용합니다.

Busta117/SQLiteUnityKit · GitHub

SQLiteUnityKit를 가져옵니다. 터미널에서 git로 복제합니다.
$ git clone https://github.com/Busta117/SQLiteUnityKit.git

프로젝트에 SQLiteUnityKit 배치



프로젝트에 SQLiteUnityKit을 가져오지만 그대로 배치하는 대신 아래 그림과 같이 배치합니다.



StreamingAssets 폴더 만들기



프로젝트에 StreamingAssets 폴더를 만듭니다. StreamingAssets 파일을 그대로 앱에 가져갈 수 있는 폴더입니다.
이 폴더에 SQLite 데이터베이스 파일을 넣으면 그대로 앱에 배치됩니다 (빌드 할 때 인코딩과 같은 추가 변환이 발생하지 않음).

Unity - 매뉴얼: 스트리밍 애셋

SQLite 데이터베이스 파일 만들기



이번에는 이미있는 SQLite 데이터베이스 파일에서 Unity에서 검색하는 방법을 설명합니다.

그래서 먼저 터미널에서 SQLite를 사용하여 데이터베이스 파일을 만듭니다.
// StreamingAssetsフォルダに移動する
$ cd ~/Unity/SQLiteSample/Assets/StreamingAssets

// データベースファイル「config.db」を作成します
$ sqlite3 config.db
SQLite version 3.7.13 2012-07-17 17:46:21
Enter ".help" for instructions
Enter SQL statements terminated with a ";"

// userというテーブルを作成します
sqlite> create table user(id integer, name text, old integer, address text);
sqlite> .q

스크립트 작성



그런 다음 스크립트를 작성하여 데이터베이스에서 데이터를 추가 및 검색합니다.
스크립트 이름은 "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, 'Yamada', 19, 'Tokyo')";
        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 () {

    }
}

스플릿을 장면의 게임 객체에 추가합니다. 여기서는 "DatabaseObject"에 추가했습니다.



실행하다



Play 버튼을 눌러 실행하면 Console 보기에 지정된 데이터를 검색할 수 있는지 확인합니다.



참고 사이트



Unity에서 SQLite
Unity SQLiteUnityKit에서 일본어를 사용할 때의 주의

좋은 웹페이지 즐겨찾기