unity3d与mysql_unity3d 读取mysql - CSDN
  • 我的mysql表格 那么开始用代码实现我们的功能吧! 我使用了简单的UI框架,可以快速拿到所需要的控件,不用一个一个拖动,还可以显示和关闭面板。 ////注册登录按钮,如果登陆成功切换到主场景 ...

    最近做的项目正好需要实现登陆注册功能,大致登录页面如下所示:图1 登录界面
    其中增加了注册和忘记密码功能,注册界面如下所示:
    图2 注册界面
    我的mysql表格在这里插入图片描述
    那么开始用代码实现我们的功能吧!
    我使用了简单的UI框架,可以快速拿到所需要的控件,不用一个一个拖动,还可以显示和关闭面板。

      注册登录按钮,如果登陆成功切换到主场景
         GetComponentFromChild<Button>("LoginButton").onClick.AddListener(()=>OnClick_Login());
         ///登录按钮注册的登录事件
         void OnClick_Login()
         {
            username = GetComponentFromChild<InputField>("NameInput").text;
            password = GetComponentFromChild<InputField>("PassWordInput").text;
            if (username == "" || password == "")
            {
               HintManage("用户名或密码不能为空");
            }
            else
            {
               Login(new string[] { username, password });
            }
         }
        //读取数据库中的数据
        private void Login(string[] str)
        {
            Dictionary<string, string> myDic = new Dictionary<string, string>();
            myDic.Clear();
            string connStr = "datasource=127.0.0.1;port=3306;database=mygamedb;user=root;pwd=root;";
            MySqlConnection conn = new MySqlConnection(connStr);
            //"数据库连接成功";
            conn.Open();
            MySqlCommand cmd = new MySqlCommand("select * from users", conn);
            MySqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                string _usernames = reader.GetString("username");
                string _password= reader.GetString("password");
                myDic.Add(_usernames, _password);
            }
            if (myDic.ContainsKey(str[0]))
            {
                string vale;
                if (myDic.TryGetValue(str[0], out vale))
                {
                    if (vale == Commons.Common.StrEncrypMd5(str[1]))/
                    {
                       //登录成功!
                    }
                    else
                    {
                       //密码错误,请重新输入;
                    }
                }
            }
            else
            {
                //账号不存在!;
            }
            //记得关闭读取和数据库
        }

    注册的话,就是往数据库中加内容了,还要判断一下账号是否已经存在

    
    ```csharp
        private void Register(string[] strRegister)
        {
            string connStr = "datasource=127.0.0.1;port=3306;database=mygamedb;user=root;pwd=root;";
            MySqlConnection conn = new MySqlConnection(connStr);
            conn.Open();
            //先要查询一下要注册的账号是否在目前数据库中。
            MySqlCommand myCommand = new MySqlCommand("select*from users", conn);
            MySqlDataReader reader = myCommand.ExecuteReader();
            List<string> user = new List<string>();
            while (reader.Read())
            {
                string username = reader.GetString("username");
                string password = reader.GetString("password");
                user.Add(username);
            }
             foreach (var item in user)
            {
                if (user.Contains(strRegister[0]))
                {
                    //"注册失败,账号已存在;
                    break;
                }
                else
                {
                    reader.Close();//先将查询的功能关闭
                    MySqlCommand cmd = new MySqlCommand("insert into users set username ='" + strRegister[0] + "'" + ",password='" + Commons.Common.StrEncrypMd5(strRegister[1]) + "'", conn);//这里密码使用了MD5进行加密
                    cmd.Parameters.AddWithValue("username", strRegister[0]);
                    cmd.Parameters.AddWithValue("password", Commons.Common.StrEncrypMd5(strRegister[1]));
                    cmd.ExecuteNonQuery();
                    //注册成功则,返回登录界面
                    break;
                }
            }
        }
    

    后来又加入了身份验证(加入密保问题),还有登陆时候需要输入验证码等功能,有空再更新吧

    展开全文
  • Unity3d mysql连接 解决方法

    千次阅读 2013-12-06 08:12:10
    Unity3d 与mysql的连接   首先要下载一个 connect/Net 程序集,该程序集提供了C#与mysql连接的类 http://dev.mysql.com/downloads/connector/net/ 根据mysql的说法,下载一个 .NET&Mono 平台的 无需安装的版本...

    Unity3d 与mysql的连接

     

    首先要下载一个 connect/Net 程序集,该程序集提供了C#与mysql连接的类

    http://dev.mysql.com/downloads/connector/net/

    根据mysql的说法,下载一个 .NET&Mono 平台的 无需安装的版本(例如:mysql-connector-net-6.7.4-noinstall.zip).

     

    下载好了后,在 Document中可以看到帮助文档。然后,按照其中的例子,编写实例。

     

    回到 Unity3d中,我使用了MonoDevelop工具。按照实例写代码,发现程序有错。提示是,没有System.Data,mysql命名空间,需要增加该命名空间的引用.

     

    解决方法是:

    1、将 Unity3d/Data/Mono/lib/mono/2.0中的System.Data.dll 拷贝到 Unity的 Assets下。

    2、将 下载好的connect/Net包中的 v2/mysql.data.dll 拷贝到 Unity的 Assets 下。

     

    这时,在Unity3d的Editor中,没有问题了。但是发布的时候问题来了。

    如果你是发布的pc平台,你需要修改API 为 .NET 2.0

    如果你是发布网络平台,在免费版中不能修改该设置。发布就出现了各种的 程序集 没有的错误,我的解决方法是将所有需要的 程序集(Unity3d/Data/Mono/lib/mono/2.0/)都拷进去。

     

    然后,就可以正常的发布了。但是,当我们真正的运行的时候,问题再一次会出现。当你需要和数据库进行交互的时候,并不能正常的工作。

     

    对于pc平台,在你生成的工程的 日志 文件中可以看到错误。大概的意思就是,你使用了一个值为空的实例。

    解决方案是:将 Unity3d /Data/Mono/lib/mono/unity 中的I18N.dll 和 I18N.west.dll 加到项目中,就可以正常的访问数据库了。

     

    对于网页而言,应该要使用 unity 中的 www 来调用服务器中处理数据库的操作。有待更新。。。。

     

    展开全文
  • Unity连接Mysql数据库

    千次阅读 2018-08-01 10:54:10
     首先你需要装Mysql这个就不必多说。其次,你还需在MySql官网:https://dev.mysql.com/downloads下载下面这些东西  下载完成安装好之后,你就可以在Visual Studio 中找到Mysql数据库的数据源连接了。  首先,...

        从昨天晚上开始一直搞到现在,也是踩了很多坑。现在做个简单的总结:

        首先你需要装Mysql这个就不必多说。其次,你还需在MySql官网:https://dev.mysql.com/downloads下载下面这些东西

        下载完成安装好之后,你就可以在Visual Studio 中找到Mysql数据库的数据源连接了。

        首先,打开VS,在视图下找到服务器资源管理器。右键“数据连接”选择“添加连接”。

    选择MySQL Database,点击“确定”。


    填写:服务器名、用户名、密码,选择数据库,点击“测试连接”就可以成功了。

    但是,至此为止,你才成功了一半。

    在unity工程中新建一个C#脚本绑定到摄像机中,在脚本中编写数据库连接的代码。需要引用到三个动态链接库。是:

    其中,System.Data.dll和System.Drawing.dll需要在E:\unity 安装根目录\Editor\Data\Mono\lib\mono\2.0中找到。

    Mysql.Data.dll需要在C:\MySQL安装目录\MySQL Connector Net 8.0.12\Assemblies找到,该文件夹下有v2.0版本的就从2.0版本里面找,没有的话需要从网上下载个。因为自己之前刚开始用v4.0版本的就出问题了。

    三个dll文件找好之后放在unity项目中的Access文件夹下,就可以正常引入三个动态链接库了。

    展开全文
  • Unity3D开发之使用MySql数据库

    万次阅读 热门讨论 2019-05-26 21:17:48
    首先,在项目里想要使用MySql,必须添加MySql.Data.dll。只有对他引用才能使用程序连接数据库。(数据库的安装很简单,自行百度)。首先我们需要定义连接数据库的字符串: public const string CONNECTIONSTRING...

        最近学了好多东西。因为看到了中年危机那篇文章,感觉自己不能偷懒了,必须要不断学习。好了,接下来是我在使用MySql的心得。

        首先,在项目里想要使用MySql,必须添加MySql.Data.dll。只有对他引用才能使用程序连接数据库。(数据库的安装很简单,自行百度)。首先我们需要定义连接数据库的字符串:

     public const string CONNECTIONSTRING = "datasource=127.0.0.1;port=3306;database=game02;user=root;pwd=root;";

    datasource代表的是数据库的地址,通常服务器和数据库都是在一台机器上的,所以我们使用代表本地机器Ip的127.0.0.1。端口号为3306这是固定的,我们使用MySql Workbench打开数据库就可以看到端口号。database代表我们要访问的数据库名称,user用户名,pwd代表密码。这些都是在安装数据库的时候我们设置的。

    好了,接下来是我们的数据库连接:

     public static MySqlConnection Connect()
            {
                MySqlConnection conn=new MySqlConnection(CONNECTIONSTRING);
                try
                {
                    conn.Open();
                    return conn;
                }
                catch (Exception e)
                {
                    Console.WriteLine("打开数据库错误!"+e);
                    return null;
                }
            }

    数据库的关闭:

     public static void CloseConnection(MySqlConnection conn)
            {
                if(conn!=null) conn.Close();
    
                else Console.WriteLine("MySqlConnection不能为空");
            }

    数据的查询:

    MySqlDataReader reader = null;
                try
                {
                    MySqlCommand command = new MySqlCommand("select * from user where username=@username " +
                                                            "and password=@password", conn);
                    command.Parameters.AddWithValue("username", username);
                    command.Parameters.AddWithValue("password", password);
                    reader = command.ExecuteReader();
                    if (reader.Read())
                    {
                        int id = reader.GetInt32("id");
                    }
                }

    这里要说下数据库的防注入问题。在查询语句中,我们使用username=@username来代替我们的输入参数。这是为了保护我们数据库安全。如果直接输入username=username的话,当一些用户或者恶意攻击数据库的用户将输入自己的用户名为“username=wo and delete from game01”,数据库数据将全部被删除。所以我们使用此方法来防止数据库恶意注入。

    数据的删除:

     MySqlCommand cmd = new MySqlCommand("delete from user where id = @id", conn);
                cmd.Parameters.AddWithValue("id", 18);
    
                cmd.ExecuteNonQuery();

    数据的更新:

     

    MySqlCommand cmd = new MySqlCommand("update user set password = @pwd,la=@la where id = 14", conn);
                cmd.Parameters.AddWithValue("pwd", "sikiedu.com");
    
                cmd.ExecuteNonQuery();

    数据的插入:

     MySqlCommand cmd = new MySqlCommand("insert into user set username ='" + username + "'" + ",password='" + password + "'", conn);
                MySqlCommand cmd = new MySqlCommand("insert into user set username=@un , password = @pwd", conn);
    
                cmd.Parameters.AddWithValue("un", username);
                cmd.Parameters.AddWithValue("pwd", password);
    
                cmd.ExecuteNonQuery();

        好了,以上就是我们对MySql数据库的常规操作。基本会满足我们在unity上的开发。

        如果本博客对你有帮助,记得点关注哦!

     

    2018.12.20更

    本次是在服务端布置一个web程序并且能和mysql连接。当时开发的时候我是在我自己本上开发,unity数据库版本应该是较低的。之前有了Mysql的一些使用,所以在这块我的开发很快。找了以前版本的MySql.Datad.dll以及连接数据库的脚本。本地测试连接没有问题。于是就部署到服务器上。网站部署完后开始安装数据库,当时就去Mysql官网下载了最新版本的数据库,8.0版本。安装一切都很顺利。安装部署设置完后,就开始测试一下连接流程。可是,webservices就是连接不上数据库。当时我很诧异,我朋友说user权限不够,我百度通过workbench设置user权限全快依然不奏效。我在mysql官网看到最新版本支持.net8,我想好高啊,我的Mysql.data.dll才是4.x的。当时我和我朋友讨论会不会是Mysql.data.dll版本过低。我朋友非常肯定的回复我:MySql不会干这种傻逼的事情,这种流失用户的操作。当时我就信了。我也没去测试换个版本dll。我朋友远程给我设置权限以及一顿操作猛如虎,依然不奏效耗了我一天时间。后来不断搜索MySql8.0的一些信息发现这个版本的数据库确实跟以前有很多不一样的东西。直到我看到一个用户的回答,我突然醒悟,之前的猜测没有错。就是dll版本问题。晕。

    果然更换完dll后webservices可以正常连接数据库了。深坑!

     

    还有我们在寻找MySql的配置文件时,在MySql安装文件下找不到。确实没有。他放在一个隐藏文件夹里。哈哈  和我们玩捉迷藏,好气。

    记得在查看里勾选上显示隐藏文件。

    2019.5.26更

    最近又在整一点数据库的东西。我在服务器上安装完mysql后,使用navicat打开数据库发现不打开,报的错误为Client does not support authentication protocol requested  by server;。百度到答案。地址:地址

    打开sqlcommandline执行以下命令:

    命令如下:
    
    1、use mysql;
    
    2、alter user 'root' identified with mysql_native_password by 'root';//密码
    
    3、flush privileges;//刷新权限

     

     

     

    展开全文
  • 本教程使用的是MySQL5.0版本 一路下一步安装,到3个选项这里   选择自定义     在“MySQL Server(MySQL服务器)”上左键单击,选择“This feature, and all subfeatures, will be installed on local ...
  • Unity3D与MySQL

    2015-12-06 09:59:14
    [csharp] view plaincopy using UnityEngine;  using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;...using System.Net.Soc
  • 前言:这几天用Unity3d与Mysql制作了一个汽车租赁系统,enmmm(无奈之举),里面有用到Mysql的一些操作,因为自己不常用,所以就记不住,所以索性这次记录一下。  准备  需要在UnityProject里新建一个文件夹,...
  • Unity3D连接MySQL(二)讲解篇 前期开发时候,一般需要先在本地 mysql 模拟数据功能,功能开发完毕后,再后台对接,本篇介绍如何使用 Unity 连接、访问 mysql。(附件在文末) Unity 2018.3.14 首...
  • Unity3D操作MySQL

    2020-05-11 10:12:44
    最近数据库用的比较多,顺便整理下MySQL的常用语句。
  • 新建Unity3D项目 新建一个 Plugins文件夹 把所需要的DLL放到 Plugins中 新建C#脚本 命名为ToMysql.cs   不多说了 ,直接上代码,很简单 有注释 ,大家一看就明白了   using UnityEngine; using ...
  • 本DEMO 实现了对数据库的增加,删除,修改,查询以及登陆
  • unity3d连接mysql的各种问题及解决

    千次阅读 2013-05-19 23:50:13
    unity3d连接mysql出了一堆麻烦。我在monodevelop里添加dll后,在头部也加上了using语句,还是说找不到namespace, 我去,然后百度谷歌,然后手动把Unity\Editor\Data\Mono\lib\mono\2.0\System.Data.dll文件import...
  • 一、目录 【Unity3D从入门到进阶】文章目录及设置这个专栏的初衷
  • Unity3D 连接MySql数据库(附案例)

    千次阅读 2013-07-18 16:45:27
    Unity3D 连接MySql数据库   一.在Mac OS X中架设MySql数据库 下载mysql for Mac http://dev.mysql.com/downloads/mysql/5.0.html 可以在Mac OS X 10.2.x(
  • unity3d发布webgl读取MySQL

    千次阅读 2018-12-26 15:27:38
    unity3d可以直接读取MySQL,但是打包成webgl网页格式之后便会受到限制。 我各种翻墙,从网上查找各种文章,都没有找到完整的技术解决方案。只好自己淌着水过河,终于找到了一个通过PHP解决的方法。 PHP读取MySQL,...
  • 目录 ...Unity3D连接MySQL(一)使用篇 1. 引入所需 dll 文件 D:\Unity\2018.3.14f1\Editor\Data\Mono\lib\mono\2.0 I18N.CJK.dll、I18N.dll、I18N.West.dll MySql.Data 去 Mysql 官网下载...
  • unity3d连接mysql数据库

    2020-07-30 23:30:38
    dll文件和代码。系统win7x64 unity4.0!
  • Unity3D -- 连接MySql(数据存储之一)

    万次阅读 2017-09-05 11:35:20
    Unity3D使用MySQL准备工作:1、安装connector。使用C#操作MySQL数据库时,需要安装MySQL官方提供的连接文件,文件下载地址为https://dev.mysql.com/downloads/connector/net/ ,下载对应版本就可以了。2、引用mysql....
  • 上一篇我们写了Unity3D连接MySQL数据库,这篇来看看如何读取存储数据。 废话不多说,先上代码,后面分析。 public void HandleMsg(string str) { // 获取数据 if (str == "_GET") { string cmdStr = "select ...
  • unity连接mysql数据库样例文件,可直接使用,包含所需的dll文件
1 2 3 4 5 ... 20
收藏数 2,024
精华内容 809
关键字:

unity3d与mysql