在Unity使用SqlLite

写在前面

在游戏存储中我们可以使用多种方法,json、二进制、xml、csv、excel、或者是文本、自定义格式等等。使用这些的时候我们基本都需要将文件整个读入内存中,那有没有一种办法可以不用将所有数据载入内存呢?

答案就是————使用++数据库++。

数据库的种类很多,大都都服务于网络服务,在单机游戏中使用数据库的话,可以选择sqllite。

SqlLite

sqllite是一种轻量的文件型数据库,整个数据库只有一个.db文件而且其使用范围非常广,支持的平台多,是我们在使用Unity开发单机游戏时的好选择。

快速食用

要使用SqlLite,我们至少需要导入:

  • sqllte3.dll
  • Mono.Data.Sqllite.dll

在这里我们额外导入Dapper作为Orm方便我们对数据进行curd:

  • Dapper.dll
  • Dapper.Contrib.dll
  • Mono.Data.Sqlite.dll

创建数据表

首先我们创建一个数据表的模型类User如下:

在类名上标注表的名称,++这个名称需要和db文件中的数据表名称对应++。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using Dapper.Contrib.Extensions;

namespace Scenes.SqlLiteDB.Tables
{
[Table("User")]
[Serializable]
public class User
{
[Key] public int id { get; set; }
public string name;
public string pass;
public int age;


public override string ToString()
{
return $"id:{id} name:{name} pass:{pass} age:{age}";
}
}
}