环境
Unity:Unity2021.3.6f1c1
OS:Window10 64
Plugins:Mono.Data.Sqlite、Sqlite
插件准备
- Sqlite3官方网址
Sqlite3有x64和x86版本,根据发布的架构使用不同版本的Sqlite3。
该文档使用x64版本,发布架构为64位。
- Mono.Data.Sqlite
使用Unity Hub打开Unity Editor目录,进入该路径
Data\MonoBleedingEdge\lib\mono\unityjit-win32
Mono.Data.Sqlite源码
mono/mcs/class/Mono.Data.Sqlite
示例
- 打印表中数据显示在屏幕
- Mono.Data.Sqlite和MySql.Data的使用方法类似
using UnityEngine;
using System.Data;
using Mono.Data.Sqlite;
using System.Collections.Generic;
public class SqliteHelper : MonoBehaviour
{
void Start()
{
//连接数据库
SqliteConnection connection = new SqliteConnection
("Data Source=" + Application.streamingAssetsPath + "/AssetLibrary.db");
try
{
//打开数据库
connection.Open();
Debug.Log(connection.State);
if (connection.State == ConnectionState.Open)
{
//sql命令
SqliteCommand serarch = new SqliteCommand("select * from furniture", connection);
//执行命令
SqliteDataReader reader = serarch.ExecuteReader();
//读取表中数据
while (reader.Read())
{
//读取数据
var info = (reader[0], reader[1], reader[2]);
dataInfos.Add(info.ToString());
}
}
//关闭数据库
connection.Close();
}
catch (System.Exception e)
{
Debug.LogException(e);
}
}
List<string> dataInfos = new List<string>();
Vector2 scrollPos;
private void OnGUI()
{
if(dataInfos.Count > 0)
{
scrollPos=GUILayout.BeginScrollView(scrollPos);
var length = dataInfos.Count;
for (int i = 0; i < length; i++)
{
GUILayout.Label(dataInfos[i]);
}
GUILayout.EndScrollView();
}
}
}