您的位置:首页 > 博客中心 > 数据库 >

Unity本地数据存储---Sqlite和JSON

时间:2022-03-10 16:58

2014-04-30更新

剔除了使用网络上烂大街的SQLite使用方法(原因android下无法读取数据),使用libSQLite3.so,通过DLLImport,在C#代码里直接调用C接口

这种原生调用SQLite的方式,我在pc、android上亲测无误,ios没测过,但是stackoverflow上有兄弟试过,没问题。园子的朋友如果可以测IOS的,欢迎提供结果

 

基本思路,游戏基础配置数据,比如怪物的属性、装备模板属性、关卡怪物等,使用SQLite(Unity插件SQLiteUnityKit-GitHub地址,推荐客户端SQLite Expert Personal 3),管理方便

玩家核心数据(属性、装备、技能)使用JSON格式,加密保存在Application.persistentDataPath路径里,避免每次升级被覆盖

插件本地下载地址

Sqlite框架

litJson

 

准备工作

 1 litJson.dll放在Plugins目录下

 2 libsqlite3.so文件放到 Assets/Plugins/Android目录下

 3 自定义的SQLite DB数据文件放到 Assets/StreamingAssets目录下

SQLite篇

 将准备好的DB数据文件拷贝到Assets/StreamingAssets

 把SQLiteUnityKit GitHub下载的压缩包里的 DataTable.cs、SqliteDatabase.cs,拷贝到项目中的任意位置

 最终项目结构看起来是这样子的

gxlsystem.com,gxl网

 SQLiteUnityKit框架用Dictionary数据结构模拟了DataTable,DataRow,因此我们执行查询语句的时候,返回的是DataTable,就像平时使用ado.net提供的查询模式一样。

 调用方式

SqliteDatabase sqlDB = new SqliteDatabase(“config.db”);
string query = “INSERT INTO User(UserName) VALUES( ‘Santiago’)”;
sqlDB.ExecuteNonQuery(query);

我做了个unitypackge的例子,大家可以下载导入

Json篇

原先是使用XML格式来存储数据的,因为XML跨平台,但是Json同样也可以做到,加上有LitJson这个格式转化利器,因此,本地文件存储格式,本文以Json为例。

关于数据加密

使用c#提供的加密类即可,自己定义秘钥

gxlsystem.com,gxl网

 

Unity本地数据存储---Sqlite和JSON,gxlsystem

热门排行

今日推荐

热门手游