【Unity+MySQL】实现简单的注册登录系统

这篇具有很好参考价值的文章主要介绍了【Unity+MySQL】实现简单的注册登录系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 安装Unity引擎和Navicat软件

确保这两个软件都能够在你的计算机上良好地运行。

2 安装MySQL8.0数据库

2.1 下载msi文件

镜像地址:http://mirrors.sohu.com/mysql/MySQL-8.0/
【Unity+MySQL】实现简单的注册登录系统

2.2 安装MySQL Server 8.0

下载完成后双击运行msi文件。
Next→
【Unity+MySQL】实现简单的注册登录系统
Next→
【Unity+MySQL】实现简单的注册登录系统
选择自定义安装,
Next→
【Unity+MySQL】实现简单的注册登录系统
选择安装路径,
Next→
【Unity+MySQL】实现简单的注册登录系统
Install安装,
【Unity+MySQL】实现简单的注册登录系统
安装完成,Finish。

2.3 配置环境变量

此电脑→计算机→属性,
【Unity+MySQL】实现简单的注册登录系统
关于→高级系统设置,
【Unity+MySQL】实现简单的注册登录系统
高级→环境变量,
【Unity+MySQL】实现简单的注册登录系统
系统变量→双击Path,
【Unity+MySQL】实现简单的注册登录系统
新建→输入mysql安装目录\bin,
【Unity+MySQL】实现简单的注册登录系统
确定→确定→确定。

2.4 安装MySQL服务

现在如果使用以下命令连接数据库,会出现错误。

mysql -uroot -p

使用以下命令安装MySQL服务。

mysqld -install

【Unity+MySQL】实现简单的注册登录系统

2.5 开启MySQL服务

搜索“计算机管理”,
【Unity+MySQL】实现简单的注册登录系统
服务和应用程序→服务→MySQL→启动,
【Unity+MySQL】实现简单的注册登录系统
遇到如下问题:
【Unity+MySQL】实现简单的注册登录系统

  1. 找到 MySQL 的安装路径,看看有没有data文件夹,如果没有data文件夹,自己重新建一个;如果有的话,就把里面的内容全部清空,但保留该目录。

  2. 到安装路径下的bin路径下,使用如下命令初始化MySQL,并静待一段时间。

    mysqld --initialize
    
  3. 接着,输入如下命令启动MySQL:

    net start mysql
    

    【Unity+MySQL】实现简单的注册登录系统
    MySQL启动成功。

2.6 修改root密码

由于安装时没有设置密码,因此需要修改root密码。

  1. 以管理员身份运行 cmd,使用命令停止MySQL服务:
    net stop mysql
    
    【Unity+MySQL】实现简单的注册登录系统
  2. 执行以下命令进入安全模式,注意不要关掉此窗口 (窗口1),因为此时该CMD相当于开启了MySQL服务。
    mysqld --console --skip-grant-tables --shared-memory
    
    【Unity+MySQL】实现简单的注册登录系统
  3. 新开启一个CMD窗口(窗口2),执行下面的命令,表示切换至mysql数据库:
    mysql
    
    mysql> use mysql
    
    先将密码设置为空,刷新权限:
    update mysql.user set authentication_string="" where user="root";
    flush privileges;
    
    再修改密码为123456,更新刷新权限后退出mysql:
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
    flush privileges;
    quit
    
    【Unity+MySQL】实现简单的注册登录系统
  4. 关闭步骤2的CMD(窗口1),在当前CMD中(窗口2)中执行开启MySQL命令启动服务,接着就可以使用新密码登录数据库了。
    net start mysql
     mysql -u root -p
    
    【Unity+MySQL】实现简单的注册登录系统

3 Navicat中新建数据库

3.1 连接

打开Navicat软件,连接→MySQL…,
【Unity+MySQL】实现简单的注册登录系统
输入连接名和密码,
【Unity+MySQL】实现简单的注册登录系统

3.2 新建数据库

右键新建数据库,
【Unity+MySQL】实现简单的注册登录系统
填写数据库名,选择字符集与排序规则,
【Unity+MySQL】实现简单的注册登录系统
确定,新建数据库。

3.2 新建用户表

打开unitygame数据库,表→新建表,
【Unity+MySQL】实现简单的注册登录系统
点击添加字段,编辑表的各项字段和数据类型,
【Unity+MySQL】实现简单的注册登录系统
Ctrl+S保存该数据表,输入表名,

【Unity+MySQL】实现简单的注册登录系统

4 Unity中实现交互功能

4.1 Unity中使用UI搭建注册登录界面

【Unity+MySQL】实现简单的注册登录系统
两个输入框分别输入用户名和密码,两个按钮分别实现注册和登录。

4.2 DatabaseManager脚本实现注册登录功能

Unity中新建一个DatabaseManager脚本,双击打开该脚本。
写入代码如下:

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using MySql.Data.MySqlClient;

public class DatabaseManager : MonoBehaviour
{
    private MySqlConnection connection;
    private string serverName = "localhost";
    private string dbName = "UnityGame";	//数据库名
    private string userName = "root";		//登录数据库的用户名
    private string password = "123456";		//登录数据库的密码
    private string port = "3306";			//MySQL服务的端口号

    public InputField InputUsername;
    public InputField InputPassword;

    void Start()
    {
        string connectionString = "Server=" + serverName + ";Database=" + dbName + ";Uid=" + userName
                                  + ";Pwd=" + password + ";Port=" + port + ";";
        connection = new MySqlConnection(connectionString);
        connection.Open();
        Debug.Log("连接数据库成功");
    }

    // 注册
    public void Register()
    {
        string username = InputUsername.text;
        string password = InputPassword.text;
        string query = "INSERT INTO usersinfo(username, password) VALUES (@username, @password)";
        MySqlCommand cmd = new MySqlCommand(query, connection);
        cmd.Parameters.AddWithValue("@username", username);
        cmd.Parameters.AddWithValue("@password", password);
        int rowsAffected = cmd.ExecuteNonQuery();

        if (rowsAffected > 0)
        {
            Debug.Log("注册成功!");
        }
        else
        {
            Debug.Log("注册失败!");
        }
    }

    // 登录
    public void Login()
    {
        string username = InputUsername.text;
        string password = InputPassword.text;
        string query = "SELECT COUNT(*) FROM usersinfo WHERE username=@username AND password=@password";
        MySqlCommand cmd = new MySqlCommand(query, connection);
        cmd.Parameters.AddWithValue("@username", username);
        cmd.Parameters.AddWithValue("@password", password);

		object result = cmd.ExecuteScalar();
        int count = Convert.ToInt32(result);

        if(count > 0)
        {
            Debug.Log("登录成功");
        }
        else
        {
            Debug.Log("登录失败");
        }
    }
}

该脚本定义了一个DatabaseManager类,在Start方法中创建了一个与数据库的连接,并提供了注册(Register)和登录(Login)方法。这些方法使用MySQL的参数化查询来保护用户的数据免受SQL注入攻击。登录方法使用ExecuteScalar()方法来检查用户名和密码是否匹配并返回一个整数结果。

4.2.1 环境配置

初次使用MySqlConnection会报找不到,这时需要引用MySql.Data.dll。

首先,确定MySQL版本为8.0.27,去官网此处下载MySQL Connector/NET,注意由于版本兼容问题,下载6.3.9版本:
【Unity+MySQL】实现简单的注册登录系统
下载完成后,双击安装:
【Unity+MySQL】实现简单的注册登录系统
Next→
【Unity+MySQL】实现简单的注册登录系统
Typical(默认安装在C盘的MySQL下,可以选择Custom自定义安装选择安装路径)→Next→
【Unity+MySQL】实现简单的注册登录系统
Install→
【Unity+MySQL】实现简单的注册登录系统
Finish完成安装。

接着,在Unity中File→Build Settings→Player Setting→Player,将Other Settings下的Configuration中的Api Compatibility Level修改为.NET Framework:

【Unity+MySQL】实现简单的注册登录系统
再在Assets下新建一个Plugins文件夹,将下载的MySQL Connector/NET文件夹如下位置(v4.0)的MySql.Data.dll复制到Plugins文件夹下。
【Unity+MySQL】实现简单的注册登录系统

4.3 绑定交互事件

在Unity中创建一个空的游戏物体,将DatabaseManager脚本添加到该游戏对象中,将输入用户名和密码的输入框拖拽到对应的变量中,并将注册与登录按钮绑定DatabaseManager脚本中对应的注册和登录方法以响应用户的注册和登录操作。
【Unity+MySQL】实现简单的注册登录系统
【Unity+MySQL】实现简单的注册登录系统

4.4 测试功能

UI界面输入:
【Unity+MySQL】实现简单的注册登录系统
系统输出信息:
【Unity+MySQL】实现简单的注册登录系统
数据库存储信息:
【Unity+MySQL】实现简单的注册登录系统
注意,如果之前Navicat已连接数据库,需要先关闭连接,再打开,在数据表中才能看见数据。

4.5 系统缺陷

  1. 缺陷:注册界面与登录界面是同一个界面,导致用户输入用户密码进行注册后,即可点击登录。
    解决方案:设计一个注册界面,一个登录界面,用户在注册界面注册成功后,再跳转到登录界面登录。
  2. 缺陷:用户注册时没有对用户信息进行校验,如一个用户用同一个用户名进行注册时应该进行提示、用户名或密码为空也应该进行提示。
    解决方案:使用Unity连接数据库实现对用户名的查询,如果数据库中不存在具有该用户名的用户记录,可以继续进行注册流程,否则提示用户名已被占用。
  3. 缺陷:用户注册时的注册时间没有加入用户表。
    解决方案:将注册时间列修改为时间戳类型,获取当前的时间戳或使用触发器实现在插入用户数据时自动更新注册时间列。
  4. 缺陷:用户注册时输入的密码以明文存储于数据库中,这是不安全的。
    解决方案:注册时将用户输入的未加密的密码进行哈希处理,并将哈希后的密码存储到数据库。登录时检查接收到的用户名和密码(加密后)是否与数据库中的匹配。
  5. 缺陷:用户登录时,没有针对特定错误进行提示,不论是因用户名密码错误还是该用户未注册都是提示“登录失败”。
    解决方案:根据不同的情况,对应给出不同的错误提示。

5 系列文章

  1. 【Unity+MySQL】实现简单的注册登录系统

  2. 【Unity+MySQL】实现注册登录系统(升级版)

  3. 【Unity+MySQL】实现注册登录系统(封装版)文章来源地址https://www.toymoban.com/news/detail-446998.html

到了这里,关于【Unity+MySQL】实现简单的注册登录系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Flask+Pycharm(专业版)+mysql编写一个简单登录注册页面

    1.1 存放 1.2 数据库 博主建立了一个名为 cat1 的数据库,表名为 students students中的具体内容如下:     model 文件夹下的 loginc.py 文件(其中连接数据库的部分要修改成自己的用户名和密码) model 文件夹下的 regist.py 文件(其中连接数据库的部分要修改成自己的用户名和密码)

    2024年02月06日
    浏览(55)
  • HTML实现简单注册登录页面

    以下两个页面均只用HTML实现(其中注册若要添加号码与后面的登录密码判断,涉及到javascript的内容,本文只使用了html,后续会加上这些内容) 简单注册:(读者可以自行增加图片以及其他属性) 登录:    

    2024年02月11日
    浏览(42)
  • JSP实现简单的登录和注册

    1、login.jsp login.jsp中 username 和 password 在LoginSelect.jsp验证是否一致 使用 session.setAttribute(\\\"login_msg\\\",\\\"用户名或密码为空\\\") 设置login_msg的值 使用 session.getAttribute(\\\"login_msg\\\") 获取对象的值,判断输入框是否为空,如果为空,则提示用户名或密码为空。 2、 loginSelect.jsp 利用Map集合存储

    2024年02月06日
    浏览(48)
  • Unity实现登录/注册/审核功能

    2024年01月23日
    浏览(50)
  • Unity实现账号登录,注册功能

    制作了用户登录界面  关于弹窗使用了DOTween插件,实现渐隐渐显效果。 关于账号使用了本地Json读取, 默认账号:YSQS/YSQS1 密码:admin/admin1 注册功能其实应该重构的因为有二次读流的问题存在。 账号注册加入了邀请码(其实就一个if)  接下来就是我那臭死了的源码。 GameSt

    2024年02月11日
    浏览(42)
  • Java实现简单的登录,注册拼图游戏

    1.登录页面 点击验证码可更换验证码,点击查看密码可查看输入的密码 2.注册界面 点击注册即可以新用户身份进入游戏 注: 初始用户信息为 用户名:hangman 密码:123456 点击重置即可重新输入密码账号重新注册 3.游戏界面 按下键盘上下左右即可进行移动操作并计算移动的步数.

    2024年02月09日
    浏览(42)
  • 微信小程序——登录注册的简单实现

    首先在微信开发者工具中创建一个登录注册界面,代码如下: longin.wxml部分: longin.wxss部分: longin.js部分: 接下来是注册界面 register.wxml部分: register.wxss部分: register.js部分: 后端部分: 需在navicat中创建user表,在idea中创建User类

    2024年02月11日
    浏览(53)
  • SpringBoot+Vue实现简单的登录注册功能

    😶‍🌫️😶‍🌫️😶‍🌫️如果你是一名全干程序员,那前后端跨域问题一定是家常便饭,作者今天带大家写一个最简单的前后端分离登录系统,方便我们理解前后端分离项目的跨域以及数据传输问题。因为要照顾小白,所以我会写的详细一点,不足的地方,大家多多指

    2024年02月04日
    浏览(41)
  • Android Studio|使用SqLite实现一个简单的登录注册功能

    本学期学习了Android Studio这门课程,本次使用Android Studio自带的sqlite数据库实现一个简单的登录注册功能。 目录 一、了解什么是Android Studio? 二、了解什么是sqlite? 三、创建项目文件  四、创建活动文件和布局文件。 五、创建数据库,连接数据库  六、创建实体类,实现注

    2024年02月06日
    浏览(53)
  • 使用JSP+Servlet+MySQL实现登录注册功能

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: Java从入门到精通 ✨特色专栏: MySQL学习 🥭本文内容:使用JSP+Servlet+MySQL实现登录注册功能 📚个人知识库: Leo知识库,欢迎大家访问 大家好,

    2024年02月04日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包