实验1: 仿真系统的UI主界面设计
(1)熟悉Unity中UI界面的设计与编写;
(2)熟悉UI界面中场景转换,UI与场景内容相互关联的方式。
(3)熟悉Unity中MySQL数据库的操作
新建一个Unity场景,在此场景中实现如下功能:
(1)自行设计一个登录、注册UI界面;
(2)添加数据库的动态链接库文件,提前设计数据库表格(自行设计);
(3)连接数据库,实现增、删、改、查等数据库对用户的操作;
(4)UI界面中包括canvas、Image、RawImage、Button等多种UI元素;
(5)实现点击Play按钮转换场景,点击Exit退出游戏的功能;
(6)实现主界面添加音量滑动杆、静音等功能,添加背景音乐和音效音乐;
(7)为UI界面单独设置一个场景,并设置编号为0。
(1)创建画布,附加背景
创建canvas作为画布,接着创建Raw Image和Image去实现基础背景的搭建

附加图片,并拖拽到和画布一样大小,背景设计完成。
(2)添加交互组件
首先添加InputField组件 作为我们的输入框,去实现账号密码框的设计
右键-->UI--->InputField

可以修改下面的TEXT去修改 输入框的默认内容
接着,添加Text 去搭建一个基本的登录框

添加Button组件,设计登录,注册,退出按钮。

一个简易的登录注册页面完成

接着,添加Dropdown,Toggle,Slider组件 进行排版得到完整的UI界面

第四步,添加脚本代码实现功能
右键--->Audio 添加一个音乐组件
导入音乐素材,拖入Audio组件中

添加脚本实现音量静音与控制
勾选toggle实现,静音
private void PlayMusic(bool arg0)
{
if (arg0)
{
ads.Pause();
}
else
{
ads.Play();
}
}
根据布尔值 判断是否勾选,如果勾选了静音按钮,就关闭音乐
拖动slider实现控制音量
private void ChangeVolume(float arg0)
{
ads.volume = arg0;
}
2.连接数据库,实现登录注册功能
第一步:在官网下载插件MySQL Connector Net
下载安装完成后,添加数据库的动态链接库文件

第二步:创建一个空对象,附加脚本实现连接
- /*
- 实现登录注册功能
- 登录:获取输入框中的字符串--->连接并打开数据库--->查找用户名密码
- Y = --->对比密码-->Y=-->关闭数据库--->登录成功
- Y = --->对比密码-->N=-->关闭数据库--->登录失败
- N = --->关闭数据库--->登录失败
- 注册:获取输入框中的字符串--->连接并打开数据库--->查找用户名密码
- Y =>关闭数据库 --->注册失败
- N => 添加用户名密码--->关闭数据库--->注册成功
- 分解:
- 1.连接并打开数据库
- 2.查找用户名密码
- 3.关闭数据库
- 4.对比密码
- 5.添加用户名和密码
- 接口:登录1234 注册1235
- 对象:GUI对象 输入框*2 按钮*2,文本
- 数据库:MySQLConnection,..Command...Reader
- 字符串
- */
-
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using MySql.Data.MySqlClient;
- using System;
- using UnityEngine.SceneManagement;
-
- public class Component9 : MonoBehaviour
- {
- public InputField inputField1;
- public InputField inputField2;
- public Button button1;
- public Button button2;
- public Text Tip;
-
- MySqlConnection sqlConnection;
- string strConn = "server=localhost;port=3306;Username=root;password=root;Database=2113042122wxh;charset=utf8;";
-
- string username;
- string password;
- string usernameDB;
- string passwordDB;
-
-
- // Start is called before the first frame update
- void Start()
- {
- button1.onClick.AddListener(Login);
- }
- public void Login()
- {
- username = inputField1.text;
- password = inputField2.text;
-
- ConnectDB();
- SelectDB(username);
- CloseDB();
- CompareDB(password);
- }
-
- private void CompareDB(string password)
- {
- if(username == usernameDB&&password == passwordDB)
- {
- SceneManager.LoadScene(1);
- }
- else
- {
- Tip.text = "登录失败";
- }
- }
-
- private void CloseDB()
- {
- if (sqlConnection.State.ToString() == "Open")
- {
- sqlConnection.Close();
- Debug.Log(sqlConnection.State);
- }
- }
-
- private Boolean SelectDB(String n)
- {
- string strSql = "select * from tb_user where username = '" + n + "';";
- using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection))
- {
- //执行ExecuteNonQuery()方法
- using (MySqlDataReader reader = mySqlCommand.ExecuteReader())
- {
- while (reader.Read())
- {
- usernameDB = reader.GetString(1);
- passwordDB = reader.GetString(2);
- return true;
- }
- }
- }
- return false;
- }
-
-
- public void ConnectDB()
- {
- try
- {
- sqlConnection = new MySqlConnection(strConn);
- sqlConnection.Open();
- Debug.Log(sqlConnection.State);
- }
- catch (Exception)
- {
-
- throw;
- }
- }
-
- public void Register()
- {
- username = inputField1.text;
- password = inputField2.text;
- //连接打开数据库
- ConnectDB();
- //查找用户名密码
- if (SelectDB(username) == true)
- {
- Tip.text = "用户存在";
- }
- else
- {
- if (AddDB(username, password) == 1)
- {
- Tip.text = "添加成功";
- }
- else
- {
- Tip.text = "添加失败";
- }
-
- }
-
- CloseDB();
-
- }
-
- private int AddDB(string n, string p)
- {
- //写sql语句
- string strSql = "insert into tb_user(username,password) values ('" + n + "','" + p + "')";
-
- //创建MySQL对象
- using (MySqlCommand mySqlCommand = new MySqlCommand(strSql, sqlConnection))
- {
- //执行ExecuteNonQuery()方法
- mySqlCommand.ExecuteNonQuery();
- }
- return 1;
- }
- }
省略