# 写在前面
在游戏存储中我们可以使用多种方法,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 文件中的数据表名称对应。
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}"; | |
} | |
} | |
} |