2017.10.21 用户登录功能使用十分普遍,现在要做的就是让用户输入用户名和密码,连接数据库,然后实现登录,这个版本只是一个使用本地数据库,现在我也只能做到登录的功能。注册的功能后续会了再加。-_-|| 2017.10.22 没想到这么快就把注册功能赶出来了,哈哈。。。。 直接把注册的代码放这里吧:
//用户注册确定按钮 public void ConfirmBtn() { Debug.Log (ReginsterIDText .text); string s = "select ID from Works where ID = '" + ReginsterIDText .text + "'"; if (ContainName (ReginsterIDText .text)) { ResginsterState.text = "用户已经存在"; } else { ResginsterState.text = "可以注册"; Debug.Log ("没有这个人可以注册"); string[] Colvalues = {ReginsterIDText .text ,ReginsterPasswordText .text }; InsertValues ("Works",Colvalues); } Debug.Log ("用户注册确认按钮"); } 注册的方法:说白了就是插入数据 protected void InsertValues (string tableName,string [] ColValues) { string queryString = "INSERT INTO " + tableName + " VALUES ('" + ColValues[0]; for (int i = 1; i < ColValues.Length; i++) { queryString += "','" + ColValues [i]; } queryString += "')"; try { command.CommandText = queryString; command.ExecuteNonQuery (); } catch (System.Exception ex) { Debug.Log (ex); } }
好了,直接上工程吧,首先新建工程,名字什么的无所谓了。新建一个画布,在画布里面新建image、2个输入文本框,一个text 一个按钮。做完了之后如图所示:
新建成这样的.PNG
然后新建2个文件夹:Plugins和StreamingAssets.
Plugins文件夹里面导入Mono.Data.Sqlite文件,sqlite3文件,如果你的unity版本是5.5.0+的版本,还需要添加System.Data文件。
sqlite3文件:http://pan.baidu.com/s/1bpvsI4J
其他的两个文件都可以在Unity的安装文件夹中搜索到。
然后StreamingAssets文件夹中放的就是数据库文件了。首先数据库怎么建立呢?同样,分享一个建立数据库的软件:http://pan.baidu.com/s/1mhAtsTU 安装后打开这个软件,新建一个sql数据表。 里面包含用户名和密码。 设置好如图所示:
数据库表.PNG
保存你建立的数据库,回到unity中。
新建一个脚本,名为“denglu”这里把源码贴出,方便大家粘贴测试:
using UnityEngine; using System.Collections; using Mono.Data.Sqlite; using UnityEngine.UI; public class denglu : MonoBehaviour { //数据库连接对象,通过该对象与数据库文件所在的路径 //进行连接,进而打开数据库文件 SqliteConnection con; //数据库文件所在的路径 string path; //数据库命令 SqliteCommand command; SqliteDataReader reader; //以下是登录练习的成员数据 public InputField input_name; public InputField input_pwd; public Text show; new string name; string pwd; object obj; void Start() { //要连接的数据库文件路径 /* path = "Data Source = " + Application.streamingAssetsPath + "/shunity.sqlite";*/ path = "Data Source = " + Application.streamingAssetsPath + "/User.sqlite"; //通过路径创建出连接对象 con = new SqliteConnection(path); //打开数据库文件 con.Open(); command = con.CreateCommand(); //Test(); } void Test() { #region 第一种执行方法,用在增/删/改 //数据库语句 // command.CommandText = "insert into hero values('张三',10,20,1)"; //该方法用在增/删/改语句 // int count = command.ExecuteNonQuery(); #endregion #region 第二种执行方法,该方法用在查询结果只有一个的情况 // command.CommandText = "select *from hero"; // object obj = command.ExecuteScalar(); // Debug.Log(obj); #endregion #region 第三种方法 command.CommandText = "select *from hero"; reader = command.ExecuteReader(); //如果读取了下一行,返回值为true,否则为false while (reader.Read()) { //把每一行的每一列读取出来 for (int i = 0; i < reader.FieldCount; i++) { Debug.Log(reader.GetName(i)); //print(reader.GetValue(i).ToString() + " "); } print("\n"); } #endregion } public void OnLoginClick() { if (ContainName() == false) { show.text = "你输入的名字不正确"; } else if (CorrectPwd() == false) { show.text = "你输入的密码不正确"; } else { show.text = "登录成功"; } } bool ContainName() { name = input_name.text; command.CommandText = "select pwd from usertable where uname = '" + name + "'"; obj = command.ExecuteScalar(); if (obj != null) { return true; } else { return false; } } bool CorrectPwd() { pwd = input_pwd.text; if (ContainName()) { if (pwd == obj.ToString()) { return true; } } return false; } }
保存后退出,新建一个空物体,把这个脚本挂上去,为里面的Ui赋值。 然后运行工程:
登录成功界面
登录失败的界面
好了,登录的就介绍到这里,过几天或者几个月再把注册写进来。
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句