找回密码
 立即注册
查看: 594|回复: 0

[其它] Unity 连接 MySql 显示表格

[复制链接]

279

主题

0

回帖

964

积分

超级版主

积分
964
发表于 2024-6-16 12:27:41 | 显示全部楼层 |阅读模式
本帖最后由 Shaw0xyz 于 2024-6-16 20:30 编辑

1. 引言

在游戏开发中,有时需要从数据库中获取数据并在游戏中展示出来。Unity 是一种流行的游戏开发引擎,而 MySQL 是一种广泛使用的关系型数据库管理系统。本文将介绍如何在 Unity 中连接 MySQL 数据库并显示表格数据。

2. 准备工作

2.1 安装 MySQL

首先,需要确保系统上已经安装了 MySQL 数据库。如果尚未安装,可以从 MySQL 官网下载并安装 MySQL。

2.2 安装 MySQL Connector

为了在 Unity 中连接 MySQL,需要安装 MySQL Connector。可以从 MySQL 官方网站下载适用于 .net 的 MySQL Connector。

2.3 配置 Unity 项目

(1) 创建新项目或打开现有项目:启动 Unity 并创建一个新的 3D 项目或打开现有项目。

(2) 导入 MySQL Connector:将下载的 MySQL Connector DLL 文件(通常是 MySql.Data.dll)复制到 Unity 项目的 Assets 文件夹中。

3. 连接 MySQL 数据库

3.1 编写连接代码

在 Unity 中,可以通过 C# 脚本连接到 MySQL 数据库。创建一个新的 C# 脚本,例如 DatabaseManager.cs,并添加以下代码:

  1. using System;
  2. using System.Data;
  3. using MySql.Data.MySqlClient;
  4. using UnityEngine;

  5. public class DatabaseManager : MonoBehaviour
  6. {
  7.     private string connectionString = "Server=your_server;Database=your_database;User ID=your_user_id;Password=your_password;Pooling=false;";

  8.     private void Start()
  9.     {
  10.         TestConnection();
  11.     }

  12.     private void TestConnection()
  13.     {
  14.         using (MySqlConnection connection = new MySqlConnection(connectionString))
  15.         {
  16.             try
  17.             {
  18.                 connection.Open();
  19.                 Debug.Log("Connection successful!");
  20.             }
  21.             catch (Exception ex)
  22.             {
  23.                 Debug.LogError("Connection failed: " + ex.Message);
  24.             }
  25.         }
  26.     }
  27. }
复制代码


在上述代码中,将 `your_server`、`your_database`、`your_user_id` 和 `your_password` 替换为实际的 MySQL 服务器地址、数据库名称、用户ID 和密码。

3.2 运行连接测试

将 DatabaseManager 脚本挂载到一个游戏对象(例如,Main Camera),然后运行 Unity 场景。如果控制台中显示 "Connection successful!",则说明连接 MySQL 成功。

4. 显示表格数据

4.1 获取数据

在 DatabaseManager.cs 中添加一个方法,用于从 MySQL 数据库中获取表格数据:

  1. private void FetchData()
  2. {
  3.     using (MySqlConnection connection = new MySqlConnection(connectionString))
  4.     {
  5.         try
  6.         {
  7.             connection.Open();
  8.             string query = "SELECT * FROM your_table";
  9.             MySqlCommand cmd = new MySqlCommand(query, connection);
  10.             MySqlDataReader reader = cmd.ExecuteReader();

  11.             while (reader.Read())
  12.             {
  13.                 string row = "";
  14.                 for (int i = 0; i < reader.FieldCount; i++)
  15.                 {
  16.                     row += reader.GetString(i) + "\t";
  17.                 }
  18.                 Debug.Log(row);
  19.             }
  20.         }
  21.         catch (Exception ex)
  22.         {
  23.             Debug.LogError("Data fetch failed: " + ex.Message);
  24.         }
  25.     }
  26. }
复制代码

在上述代码中,将 `your_table` 替换为实际的表格名称。该方法执行查询并逐行读取数据,将每行数据输出到控制台。

4.2 显示数据

为了在游戏中显示数据,可以使用 Unity 的 UI 系统。创建一个新的 UI Text 对象,并编写代码将数据展示在该文本对象中。以下是示例代码:

  1. using UnityEngine;
  2. using UnityEngine.UI;

  3. public class DatabaseManager : MonoBehaviour
  4. {
  5.     public Text dataText;
  6.     private string connectionString = "Server=your_server;Database=your_database;User ID=your_user_id;Password=your_password;Pooling=false;";

  7.     private void Start()
  8.     {
  9.         FetchData();
  10.     }

  11.     private void FetchData()
  12.     {
  13.         using (MySqlConnection connection = new MySqlConnection(connectionString))
  14.         {
  15.             try
  16.             {
  17.                 connection.Open();
  18.                 string query = "SELECT * FROM your_table";
  19.                 MySqlCommand cmd = new MySqlCommand(query, connection);
  20.                 MySqlDataReader reader = cmd.ExecuteReader();

  21.                 string allData = "";
  22.                 while (reader.Read())
  23.                 {
  24.                     string row = "";
  25.                     for (int i = 0; i < reader.FieldCount; i++)
  26.                     {
  27.                         row += reader.GetString(i) + "\t";
  28.                     }
  29.                     allData += row + "\n";
  30.                 }
  31.                 dataText.text = allData;
  32.             }
  33.             catch (Exception ex)
  34.             {
  35.                 Debug.LogError("Data fetch failed: " + ex.Message);
  36.             }
  37.         }
  38.     }
  39. }
复制代码

将该脚本挂载到一个游戏对象(例如,Main Camera),并将 UI Text 对象拖放到 `dataText` 字段中。运行场景,即可在 UI Text 对象中显示表格数据。

5. 结论

本文详细介绍了如何在 Unity 中连接 MySQL 数据库并显示表格数据。通过这些步骤,开发者可以在游戏中动态展示数据库中的数据,从而实现更多互动和数据驱动的功能。希望本文能为 Unity 开发者提供实用的参考和帮助。



/ 荔枝学姐de课后专栏 /

Hi!这里是荔枝学姐~

欢迎来到我的课后专栏

自然语言学渣 NLP摆烂姐

热衷于技术写作 IT边角料

AIGC & Coding & linux ...

~互撩~ TG: @Shaw_0xyz
荔枝学姐爱吃荔枝!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系站长|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2025-4-4 13:49 , Processed in 0.071575 second(s), 24 queries .

Powered by 主机论坛 HostSsss.Com

HostSsss.Com

快速回复 返回顶部 返回列表