游戏开发平台:Unity 2019.4.23f1以上 编程平台:Visual Studio 2019 编程语言:C#
为什么选择使用数据库?答:数据库作为数据管理的库,便于游戏开发者管理角色数据,如调整、增加、修改等操作,省去了繁琐的定位到某一脚本修改参数变量。对运维管理,利于保存玩家数据,如交易道具,仓库存储,身份UID。联网类游戏更是记录玩家的登录账号和密码检查登入者是否为玩家本人等情况。
扩展程序依赖在Unity平台上连接使用SQL数据库,避免不了扩展程序的依赖。如下所示:
- Microsoft.Data.Sqlite.dll 由微软官方提供的针对数据库连接的程序包
- Mono.Data.Sqlite.dll 点我官网下载 由Mono提供的针对数据库连接的程序包,于2018年停止更新。早期Unity版本使用的编译器为MonoBehavior平台,自2017版本以来,Unity与微软合作后推荐选用Visual Studio。
- System.Data.Sqlite.dll 由下载安装Visual Studio自动下载的
准备依赖工具
Vs内部下载:
- Visual Studio 项目 -> 管理NuGet程序包 -> 搜索并下载对应.dll
外部导入:
- Visual Studio 右键项目依赖项 -> 添加依赖项
private SqliteConnection connection;
private SqliteCommand cmd;
private SqliteDataReader dataReader;
SqliteConnection
:连接行为SqliteCommand
:SQLite命令内容,如 SELECT * FROM dataSqliteDataReader
:数据库中的数据内容
2.1 连接数据库
public void OpenSQLConnection(string dbObject)
{
try
{
connection = new SqliteConnection(dbObject);
connection.Open();
//Debug.Log("数据库:" + dbObject + "连接成功");
}
catch (Exception e)
{
//Debug.LogError("异常错误:" + e.ToString());
}
}
SqliteConnection
:连接数据库Open()
:打开数据库try...catch
:捕获异常信息以助于更好了解
public void CloseSQLConnection()
{
if (cmd != null)
{
//清空cmd命令内容
cmd.Dispose();
cmd = null;
}
if (dataReader != null)
{
dataReader.Dispose();
dataReader = null;
}
if (connection != null)
{
connection.Dispose();
connection = null;
}
Debug.Log("数据库已断开连接!");
}
Dispose()
:断开数据库连接(断开后不可再次连接,且需断开后设置对象为null)Close()
:断开数据库连接(断开后可多次连接与断开,无需断开后设置对象null)cmd
命令、dataReader
数据读取、connection
数据库连接 是访问数据库数据不可缺少的对象。 通过connection
实现对数据库文件(.db)的连接服务; 通过dataReader
读取数据库的数据内容; 通过cmd
执行查询、增加、删除、更新数据库内数据;
public SqliteDataReader ExecuteCommand(string sqlQuery)
{
cmd = connection.CreateCommand();
cmd.CommandText = sqlQuery;
dataReader = cmd.ExecuteReader();
return dataReader;
}
SqliteDataReader
:数据库数据读取CreateCommand()
:创建SQL命令对象CommandText
:SQL命令内容,这里的指令来自于局部参数sqlQuery
ExecuteReader()
:执行SQL命令dataReader
:数据库数据,这里指通过SQL命令查询到的数据内容
public SqliteDataReader QuaryData(string tableName)
{
string query = "SELECT * FROM " + tableName;
return ExecuteCommand(query);
}
tableName
:SQLite数据表名"SELECT * FROM " + tableName
:SQLite命令格式,详细参考数据库相关书籍
public SqliteDataReader QuaryData(string tableName, string fieldName)
{
string query = "SELECT " + fieldName + " FROM " + tableName;
return ExecuteCommand(query);
}
tableName
:SQLite数据表名fieldName
:元素名
public SqliteDataReader QuaryData(string tableName, string[] fieldName)
{
string query = "SELECT ";
for (int i = 0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?