《游戏AI程序设计实战》作者
Github:onelei - Overview
Unity数据存储Sqlite的使用
是什么
Sqlite是是一个SQL数据库引擎。
为什么
之前的项目中基本都是使用PlayerPrefs来存储数据,但是由于后期数据结构复杂的情况下,比如存储一个List的结构数据,通常是自己控制写法添加逗号,分号来将数据分隔开。如果哪里写错了,整个数据就会错位导致数据错乱,维护起来非常麻烦。由于服务器的数据存储都是使用数据库SQL,因此打算在前端也使用数据库存储数据。
怎么做
前期准备
要在Unity中使用Sqlite需要将Mono.Data.Sqlite.dll,System.Data.dll, Sqlite3.dll 三个文件放入Plugins文件夹下。
Mono.Data.Sqlite.dll
在Unity的Editor安装目录下“ EditorDataMonolibmono2.0 Mono.Data.Sqlite.dll”
System.Data.dll
在Unity的Editor安装目录下“ EditorDataMonolibmono2.0 System.Data.dll”
Sqlite3.dll
在Sqlite的官网下载对应的版本即可“ https://www.sqlite.org/download.html ”
实现
下载一个数据库查看软件Navicat Premium,通过它创建一个数据库database.db,将其放入Unity的“StreamingAssets”目录下。
数据库一般是增删改查这几项功能。
新建SqliteConnection,SqliteCommand,SqliteDataReader三个变量。
/// <summary>
建立数据库连接
/// <summary>
执行查询语句
/// <summary>
创建表格
/// <summary>
插入
/// <summary>
删除
/// <summary>
更新
/// <summary>
查找
/// <summary>
表格是否存在
/// <summary>
数据库在不同平台下的路径
public
由于数据在表格中,因此我们需要使用一个HashTable来存储这些数据,一开始先载入数据库,然后读取出里面的所有数据将其存入HashTable中,后面增删改查的时候不仅针对HashTable进行操作,还要针对数据库进行操作。
private
我们存储数据的时候不一定都是String类型,同时还需要Int,Long,Float等类型,因此需要预先设置好数据库的列名,同时还需要一个数据类型字段来表明存储的数据类型,具体如下
private
加载表格
public
设置Value
public
删除Value
public
关闭数据库
/// <summary>
整个数据库相关操作已经完成,新建一个SqlManager统一管理即可
using
由于使用的时候需要调用的函数名太长,可以新建一个工具类封装一下
新建一个测试函数
using
运行Unity,发现表格数据已经生成
同时通过C#,也将数据读取了出来
具体源码可以通过Github查看: https:///onelei/SqlManager