`

Unity引擎链接mySQL数据库

 
阅读更多
需要unity3d3.5 pro版本,所以先确认自己用的是不是 下载地址:http://game.ceeger.com/forum/read.php?tid=870(经测试好用)

安装 mysql-connector-net 我装的是 6.0.3 下载地址:

安装mono,官网地址 http://www.go-mono.com/mono-downloads/download.html 我下的是2.10.8

复制文件
Mono-2.10.8\lib\mono\gac\System.Drawing\4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll
Mono-2.10.8\lib\mono\gac\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll
C:\Program Files (x86)\MySQL\MySQL Connector Net 6.0.3\Assemblies\MySql.Data.dll

复制到Assets目录里(就是项目工程目录,找不到拖出去TJJTDS)

没mysql的,下载XAMPP进行安装,我的版本是1.7.4  度娘搜索XAMPP很多,就不给地址了。安装时记得把mysql选上。

确保mysql可以运行,打开浏览器,输入地址:http://127.0.0.1/phpmyadmin/

修改root密码123
添加库文件test
添加表unity3d
字段User_ID AUTO_INCREMENT
User_Name char(10)
User_Sex char(10)

随便添几条数据。

也可以使用管理工具,推荐 HeidiSQL

之后可以使用下面这个PHP脚本测试下是否能连接成功。

使用方法,进入目录 D:\xampp\htdocs\xampp 建立PHP文件,1.php
<?php
$con = mysql_connect("127.0.0.1","root","123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
?>

然后通过http://127.0.0.1/xampp/1.php 如果什么都不显示,就对了。



配置结束,下面是代码:
可以参考这个:http://zhboy666666.iteye.com/admin/blogs/1468131

建立C#脚本:CMySql.cs代码如下

using UnityEngine;  
using System;  
using System.Collections;  
using System.Data;  
using MySql.Data.MySqlClient;  
public class CMySql : MonoBehaviour {  
    // Global variables  
    public static MySqlConnection dbConnection;//Just like MyConn.conn in StoryTools before  
   
     static string host = "127.0.0.1";  
     static string id = "root";  
     static string pwd = "123";  
     static string database = "test";  
     static string result = "";  
      
private string strCommand = "Select * from unity3d ORDER BY id;";  
public static DataSet MyObj;  
     void OnGUI()  
     {  
         host = GUILayout.TextField( host, 200, GUILayout.Width(200));  
         id = GUILayout.TextField( id, 200, GUILayout.Width(200));  
         pwd = GUILayout.TextField( pwd, 200, GUILayout.Width(200));  
         if(GUILayout.Button("Test"))  
         {  
    string connectionString = string.Format("Server = {0}; Database = {1}; User ID = {2}; Password = 

{3};",host,database,id,pwd);  
    openSqlConnection(connectionString);  
      
    MyObj = GetDataSet(strCommand);  
         }  
         GUILayout.Label(result);  
     }   
    // On quit  
    public static void OnApplicationQuit() {  
        closeSqlConnection();  
    }  
      
    // Connect to database  
    private static void openSqlConnection(string connectionString) {  
        dbConnection = new MySqlConnection(connectionString);  
        dbConnection.Open();  
        result = dbConnection.ServerVersion;  
        //Debug.Log("Connected to database."+result);  
    }  
      
    // Disconnect from database  
    private static void closeSqlConnection() {  
        dbConnection.Close();  
        dbConnection = null;  
        //Debug.Log("Disconnected from database."+result);  
    }  
      
    // MySQL Query  
    public static void doQuery(string sqlQuery) {  
        IDbCommand dbCommand = dbConnection.CreateCommand();    
        dbCommand.CommandText = sqlQuery;  
        IDataReader reader = dbCommand.ExecuteReader();  
        reader.Close();  
        reader = null;  
        dbCommand.Dispose();  
        dbCommand = null;  
    }  
    #region Get DataSet  
    public  DataSet GetDataSet(string sqlString)  
    {  
        //string sql = UnicodeAndANSI.UnicodeAndANSI.UnicodeToUtf8(sqlString);  
     
     
  DataSet ds = new DataSet();  
        try  
        {  
            MySqlDataAdapter da = new MySqlDataAdapter(sqlString, dbConnection);  
            da.Fill(ds);  
      
        }  
        catch (Exception ee)  
        {  
      
            throw new Exception("SQL:" + sqlString + "\n" + ee.Message.ToString());  
        }  
        return ds;  
     
    }  
    #endregion  
}  


建立C#脚本:DataBaseTest.cs代码如下
using UnityEngine;  
using System;  
using System.Collections;  
using System.Data;  
   
public class DataBaseTest : MonoBehaviour {  
public GUISkin myGUISkin = new GUISkin();  
string strID = "";  
string strName = "";  
string strSex = "";  
int Index = 1;  
// Use this for initialization  
void Start () {  
}  
   
void OnGUI()  
{  
  GUI.skin = myGUISkin;  
  if (GUI.Button(new Rect(100,320,100,100),"Click Me"))  
  {  
   foreach(DataRow dr in CMySql.MyObj.Tables[0].Rows)  
   {  
    if (Index.ToString() == dr["ID"].ToString())  
    {  
     strID = dr["User_ID"].ToString();  
     strName =  dr["User_Name"].ToString();  
     strSex = dr["User_Sex"].ToString();  
        
     break;  
    }  
   }    
   Index++;  
    if(Index > 5)  
   {  
    Index = 1;  
   }   
      
  }  
  GUI.Label(new Rect(320,100,150,70),"DataBaseTest");  
  GUI.Label(new Rect(300,210,150,70),strID);  
  GUI.Label(new Rect(300,320,150,70),strName);  
  GUI.Label(new Rect(300,430,150,70),strSex);  
}  
}  


建立GameObject
  建立完GameObject後將上面兩個腳本掛上去 ,如果有建立GUISkin , 記得指定GUISkin

執行
  執行後先按Test按鈕來連接數據庫 , 然後再按"ClickMe"來顯示數據庫內的內容
分享到:
评论

相关推荐

    Unity连接MySQL数据库

    在Unity中连接MySQL数据库,可以实现在游戏或应用中动态获取和更新服务器上的数据,提升用户体验。 要实现Unity连接MySQL数据库,首先需要准备以下组件: 1. **MySQL Connector**: 这是Unity与MySQL通信的桥梁,它...

    Unity实现连接MySQL数据库.rar_MYSQL_unity_unity 3d_unity 数据库

    在Unity中连接MySQL数据库是一项常见的需求,特别是在需要持久化存储游戏数据或实现网络功能时。MySQL是一种流行的开源关系型数据库管理系统,具有高性能、高可靠性和易用性。 要实现在Unity中连接MySQL数据库,...

    Unity连接Mysql所需的全部dll文件

    连接MySQL数据库的过程通常包括以下步骤: 1. 导入所需的DLL文件:将下载的dll文件(如MySql.Data.dll)导入到Unity项目的Assets目录下,这样Unity才能在运行时找到并使用它们。 2. 引用DLL:在C#脚本中,使用`using...

    unity连接mysql数据库unitypackage

    本“unity连接mysql数据库unitypackage”正是为了解决Unity与MySQL数据库之间的通信问题。 首先,我们需要在Unity项目中集成MySQL数据库的驱动。通常我们会使用像MySql.Data.dll这样的库,它允许Unity与MySQL进行...

    unity连接mysql数据库demo

    总结,"unity连接mysql数据库demo"是一个展示如何在Unity游戏中与MySQL数据库进行交互的示例。通过导入必要的DLL文件,编写C#脚本,我们可以创建数据库连接,执行SQL命令,并安全地处理结果。这个过程对于构建需要...

    Unity连接数据库MySQL.pdf

    Unity 是一个流行的游戏引擎, MySQL 是一个流行的关系数据库管理系统。在游戏开发中,连接数据库是非常重要的, Unity 提供了多种方式来连接数据库,本文将介绍如何使用 Unity 连接 MySQL 数据库。 连接 MySQL ...

    unity连接mysql数据库demo源码

    总的来说,这个Unity连接MySQL数据库的示例提供了基础的连接和查询功能,但实际项目中可能需要更复杂的业务逻辑和错误处理。理解这些基本概念后,你可以根据需求扩展代码,实现更丰富的数据库功能。

    unity3d中连接数据库

    本文将深入解析如何在Unity3D环境中利用C#语言与MySQL数据库进行交互,包括连接、查询以及基本的数据操作。 ### Unity3D与数据库连接的基础 Unity3D是一个功能强大的跨平台游戏引擎,它支持多种编程语言,其中C#是...

    Unity3D连接MySQL驱动包

    在Unity中连接MySQL数据库是实现游戏数据存储和检索的重要环节。这个“Unity3D连接MySQL驱动包”提供了必要的组件和工具,使得开发者能够在Unity3D环境中与MySQL数据库进行无缝对接。 首先,我们要了解Unity3D中...

    unity连接mysql工具包

    总的来说,"unity连接mysql工具包"提供了一整套解决方案,让开发者能够在Unity项目中集成MySQL数据库,实现数据的存储和检索。通过合理利用这些工具,可以创建具有复杂数据管理功能的游戏或应用,提高项目的可玩性和...

    Unity实现多数据库访问

    本项目“Unity实现多数据库访问”旨在教你如何在Unity环境中处理多种数据库的连接与数据操作,包括MySQL和SQL Server。这在大型项目中尤为重要,因为不同的数据库系统可能根据需求或者性能考虑被用于不同的功能。 ...

    MySql.Data.zip_Unity MySql 开发_ct1_unity_unity MySQL_unity的Mysql卡

    "MySql.Data.zip_Unity MySql 开发_ct1_unity_unity MySQL_unity的Mysql卡"这个压缩包文件,主要包含了用于Unity中连接和操作MySQL数据库的关键组件——MySql.Data.dll。下面我们将深入探讨Unity与MySQL的结合以及...

    Unity-with-MYSQL-master_database_unity3d_MYSQL_TheMaster_

    标题“Unity-with-MYSQL-master_database_unity3d_MYSQL_TheMaster_”表明这是一个关于在Unity游戏引擎中集成MySQL数据库的项目。这个项目可能包含了详细的过程、代码示例以及如何在Unity环境中操作MySQL数据库的...

    Unity连接Mysql

    在Unity中连接MySQL数据库是一项重要的技术,它允许开发者存储和检索游戏数据,如用户信息、游戏进度或者高分榜。下面将详细阐述如何在Unity中实现与MySQL的连接。 首先,我们需要确保在开发环境中安装了必要的库。...

    unity mysql 数据库链接方案

    1.解决mysql数据库 放入unity 中dll 出错问题 2.解决恶行bug Encoding 1252 data could not be found

    MySql5.7版本连接Unity需要的mysql.data.dll文件

    以下是关于如何在 Unity 中使用 `mysql.data.dll` 连接 MySQL 数据库的关键步骤和知识点: 1. **导入 DLL**:将 `mysql.data.dll` 文件复制到 Unity 项目的 `Assets/Plugins` 目录下。Unity 支持在该目录下放置非...

    unity连接数据所需要的DLL文件

    4. **MySql.Data.dll**:这是MySQL的.NET数据提供程序,用于连接和操作MySQL数据库。在Unity中,如果你选择使用MySQL作为后端数据库,这个DLL将必不可少。它提供了连接、命令执行、数据读取等功能,使Unity能够与...

    Unity通过php访问MySql

    PHP可以使用mysqli或PDO扩展来连接MySQL数据库。例如,使用mysqli,你可以创建一个连接对象,然后执行SQL语句。以下是一个简单的示例: ```php $conn = mysqli_connect("localhost", "username", "password", ...

Global site tag (gtag.js) - Google Analytics