2019独角兽企业重金招聘Python工程师标准>>>
1、我写的程序不需要数据库
写了好久的unity单机应用,终于鼓起勇气说服自己尝试连接数据库,并着手学习写网络应用了。谨以此纪念我不思进取的青春吧。
在unity中,数据的存储方式很多,但是最实用的仍然还是用数据库的方式。那么具体应该怎么操作呢?
2、我需要点什么
首先,我需要给自己的电脑装上SqlServer数据库。至于怎么下载和安装,请未来的我自己百度,这里不做赘述。
第二,我们安装好SqlServer之后,打开SqlServer配置管理器,启动如下服务。
第三,创建名为Test的数据库,创建一个Table_1的表,并添加一条数据为张三,如下图所示:
到此关于SqlServer方面的准备就已经做好了。
第四,既然是Unity的数据连接,当然需要你的电脑至少有Unity和VS啦。我这里用的版本是Unity2017和VS2017。
3、那么开始吧
首先,打开Unity,创建新工程。并在unity的安装路径下找到 System.Data.dll 文件。具体路径为 Unity安装路径\Unity\Editor\Data\Mono\lib\mono\unity\。将此文件复制到Unity工程Assets目录下。
这样就可以开始写脚本连接数据库对数据进行操作了,但是这样会存在一个问题,就是当程序发布出去之后,你的数据库就没有办法连接了。在这种情况下,我们需要在上述同样路径下找到以下文件,并将其复制到unity工程Assets目录下。
然后新建一个名为sqltest的c#脚本,用VS打开,在项目解决方案的引用中检查是否成功引用刚刚导入的几个文件,如果成功导入,则可以开始编辑脚本;如果没有,则应该添加对应引用。
脚本内容及注释如下所示:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Data;
using System.Data.SqlClient;
public class sqltest : MonoBehaviour {
//数据库连接的定义
private SqlConnection sqlCon;
//数据库连接地址
private string sqlAddress = "server=192.168.200.21;database=Test;uid=sa;pwd=123456";
//适配器
SqlDataAdapter sda = null;
// Use this for initialization
void Start()
{
//传建一个数据库连接事件
sqlCon = new SqlConnection(sqlAddress);
}
// Update is called once per frame
void Update()
{
//按下空格键,执行对应操作
if (Input.GetKeyDown(KeyCode.Space))
{
Debug.Log("space down");
try
{
//打开连接
sqlCon.Open();
//连接成功
Debug.Log("Yes");
//数据库操作语句
string sql = "select * from Table_1";
//数据库操作
sda = new SqlDataAdapter(sql, sqlAddress);
//结果集
DataSet ds = new DataSet();
//将查询的结果放入结果集
sda.Fill(ds, "Table_1");
//打印结果
print(ds.Tables[0].Rows[0][0]);
}
//如果出现异常,抛出
catch (System.Exception)
{
Debug.Log("No");
throw;
}
}
//空格键抬起,数据库连接关闭
else if (Input.GetKeyUp(KeyCode.Space)) {
Debug.Log("space up");
sqlCon.Close();
}
}
}
脚本编译完成,保存,将脚本绑定到某一游戏物体上。运行,按下空格键,运行结果如下所示:
4、最后说两句
好久没写博客了啊,要坚持要坚持~