本文章涉及的编译器版本: Unity2018.4.18f1 + mysql-8.0.28 + Visual Studio2019
1. Visual Studio中下载MySql.Data插件
首先你需要有Visual Studio,在Visual Studio中下载一个插件MySql.Data。
在浏览中搜索MySql.Data,然后下载该插件。
2. MySql官网下载插件
你需要有MySql,然后到官网下载以下三个东西
- MySQL Connector Net(下载低一点的版本,我这边下载的版本是6.39)
- Connector ODBC 8.0
- MySQL for VIsaul Studio
下载完之后傻瓜式的安装即可。
3. 尝试Visual Studio连接Mysql
以上工作做完之后,尝试Visual Studio连接Mysql。打开Visual Studio,打开服务器资源管理器。 右键数据连接,选择添加连接。 选择MySQL Database,然后输入账号密码,选择一个数据库进行测试连接,成功就可以继续下一步。
4. 在Unity中导入dll文件
需要在Connector Net中找到Assembilies里导入MySql.Data.dll。
如果Unity版本是18及以后的,只需要在Assets中添加MySql.Data.dll即可,因为System.Data.dll和System.Drawing.dll两个文件已经被集成到内置文件中了,重复添加会报错误。
(因为我这边版本是18的,所以就不添加另外两个dll)
添加完之后在Visual Studio中引用里可以找到对应的引用。
5. 编写SQL脚本进行测试
SqlAccess.cs
using System;
using System.Data;
using MySql.Data.MySqlClient;
using UnityEngine;
using System.Text;
public class SqlAccess
{
public static MySqlConnection dbConnection;
static string host = "localhost";
static string port = "3306";
static string username = "root";
static string pwd = "123456";
static string database = "dudugo";
public SqlAccess()
{
OpenSql();
}
public static void OpenSql()
{
try
{
string connectionString = string.Format("server = {0};port={1};user = {2};password = {3};database = {4};", host, port, username, pwd, database);
Debug.Log(connectionString);
dbConnection = new MySqlConnection(connectionString);
Debug.Log("准备建立连接...");
dbConnection.Open();
Debug.Log("建立连接成功!");
}
catch (Exception e)
{
throw new Exception("服务器连接失败,请重新检查是否打开MySql服务。" + e.Message.ToString());
}
}
public void Close()
{
if (dbConnection != null)
{
dbConnection.Close();
dbConnection.Dispose();
dbConnection = null;
}
}
public DataSet SelectAll(string tableName)
{
StringBuilder query = new StringBuilder();
query.Append("SELECT * FROM");
query.Append(tableName);
Debug.Log(query.ToString());
return ExecuteQuery(query.ToString());
}
}
TestSql.cs
using System.Data;
using UnityEngine;
public class TestSql : MonoBehaviour
{
void Start()
{
SqlAccess sql = new SqlAccess();
DataSet ds = sql.SelectAll("`rank`");
if (ds != null)
{
DataTable table = ds.Tables[0];
foreach (DataRow row in table.Rows)
{
string str = "";
foreach (DataColumn column in table.Columns)
str += row[column] + " ";
Debug.Log(str);
}
}
}
}
将TestSql.cs的脚本随便挂给一个游戏对象,运行后可以看到结果。
6. 打包后无法连接数据库
项目打包后,会出现无法连接数据库的问题,这边也有对应的解决方法。
对应Unity的安装目录:Unity\Editor\Data\MonoBleedingEdge\lib\mono\unityjit
- 在Unity中去修改Api Compatibility Level为.NET 4.x
路径:Project Setting->player->othersetting->Configuration->Api Compatibility Level
参考链接1:Unity2020连接MySQL数据库 参考链接2:Unity2018连接MySQL数据库 参考链接3:关于Unity在编辑器中能连接数据库,但是打包后不能连接数据库的解决方案
|