Unity3d和连接MySQL数据库实现登陆注册等功能

最近做的项目正好需要实现登陆注册功能,大致登录页面如下所示:Unity3d和连接MySQL数据库实现登陆注册等功能_第1张图片
其中增加了注册和忘记密码功能,注册界面如下所示:
Unity3d和连接MySQL数据库实现登陆注册等功能_第2张图片
我的mysql表格Unity3d和连接MySQL数据库实现登陆注册等功能_第3张图片
那么开始用代码实现我们的功能吧!
我使用了简单的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 user = new List();
        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)