LiteDB
ゲームで使うテーブルデータを SQLite で管理し、内部では QUERY の WHERE 句を利用してデータを返します。
Install
Section titled “Install”以下のインストール方法のいずれかを選んでください。
注: GitHub URL の
#以降のバージョンは changelog に記載された最新変更を確認してください。
Install via Unity Package Manager (UPM)
Section titled “Install via Unity Package Manager (UPM)”- Unity Package Manager を開き、左上の
+ボタンをクリックします。 Install package from git URL...を選択します。https://github.com/achieveonepark/lite-db.git#1.0.1を入力して Install をクリックします。
Manual Addition
Section titled “Manual Addition”Unity プロジェクトの Packages フォルダにある manifest.json を開きます。
dependencies に次の 1 行を追加します。
"com.achieve.lite-db": "https://github.com/achieveonepark/lite-db.git#1.0.1"Setting
Section titled “Setting”- DB Browser をインストールします。

- 新しいデータベースを作成します。
- Create Table をクリックしてテーブルと変数を追加します。変数追加の詳細は下を参照してください。
- 作成したテーブルへデータを追加します。
Create SQLite Table
Section titled “Create SQLite Table”- Type
| SQLite Type | C# Type |
|---|---|
| INTEGER | int, long |
| REAL | double, float |
| TEXT | string, enum, bool |
| BLOB | byte[] |
- PK: Primary Key。このパッケージでは
Idを主キーとして使います。 - NN: Not Null。
boolのように NULL を許可しない値に設定します。 - AI: Auto Increment。整数列で使われ、新しい行が追加されるたびに値が自動で 1 ずつ増えます。
通常は主キーと一緒に使います。 - U: Unsigned。数値データ型で使われ、負の値を許可しない 0 以上の値を意味します。
Create Table Data Class
Section titled “Create Table Data Class”CsvImporter は Code Generator をサポートしているので、ワンクリックでテーブルデータクラスを作ることもできます。
上のように値を設定したら、Unity 側で受け取って使うクラスも作成する必要があります。
using Achieve.Database;using Unity.VisualScripting.Dependencies.Sqlite;
[Table("TowerData")]public class UnitData : IDataBase{ // Id で Query するため、この Attribute と PK 設定は必須 [PrimaryKey, AutoIncrement] public int Id { get; set; } public string Name { get; set; } public double Attack { get; set; } public double Defense { get; set; } public double HP { get; set; }}Quick Start
Section titled “Quick Start”LiteDB.Initialize($"{Application.persistentDataPath}/secure/data.db"); // Path
var data = LiteDB.Get<Quest>(1);
if (LiteDB.TryGetValue<Quest, int>("Quest", 1, out var quest)){ var reward = quest.reward;}
// 存在すれば Id が 1〜10 の値を List として読み込みvar list = LiteDB.GetList<Quest>(1, 10);
if(LiteDB.Exist<Quest>(1)){ // 存在する!}