好久没有写博客了,最近比较忙。今天我们来分享一下制作账户登录界面的做法吧!由于比较喜欢UGUI,所以用UGUI系统来开发的,但是个人感觉UGUI和NGUI没有太多的区别!
先来几张图片看看效果图吧!
好了,以上就是这个登陆界面的主要效果图啦!看了这么多的图片是不是心动了呢!自己也想开发出来吧!那下面就交给我们的程序员来解决吧!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using UnityEngine.UI;
using System.Xml;
/// <summary>
/// xml制作登陆界面
/// </summary>
public class XMLEnter : MonoBehaviour
{
#region 公共变量声明区
/// <summary>
/// 注册框
/// </summary>
public Image registerPass;
/// <summary>
/// 提示框
/// </summary>
public Image AlertPanel;
/// <summary>
/// 显示的文字
/// </summary>
public Text labelInfo;
/// <summary>
/// 提示框的文字
/// </summary>
public Text labelAlert;
/// <summary>
/// 注册的账户信息
/// </summary>
public InputField inputAccount;
/// <summary>
/// 注册账户的密码信息
/// </summary>
public InputField inputPassword;
/// <summary>
/// 注册账户的密码信息校验
/// </summary>
public InputField inputConfimPassword;
/// <summary>
/// 注册时的电话信息
/// </summary>
public InputField inputTelePhone;
/// <summary>
/// 注册时的QQ
/// </summary>
public InputField inputQQ;
/// <summary>
/// 登陆时的账户输入栏
/// </summary>
public InputField inputLoginAccountt;
/// <summary>
/// 登陆时的密码栏
/// </summary>
public InputField inputLoginPassword;
#endregion
#region 私有变量区
/// <summary>
/// 保存的xml文件路径
/// </summary>
private string xmlPath;
#endregion
#region Start初始化方法
// Use this for initialization
void Start()
{
xmlPath = Application.dataPath + "/user.xml";
if (!File.Exists(xmlPath))
{
XmlDocument xmlDoc = new XmlDocument();//创建xml 对象
XmlElement root = xmlDoc.CreateElement("Root");//创建根节点
xmlDoc.AppendChild(root);//添加根节点
XmlElement user = xmlDoc.CreateElement("User");//创建子节点
//向子节点里面添加内容
user.SetAttribute("user_name", "YLY");
user.SetAttribute("user_pass", "1314520.yly");
user.SetAttribute("user_tel", "1234567890");
user.SetAttribute("user_qq", "123456789");
root.AppendChild(user);//将设置的内容添加上去
xmlDoc.Save(xmlPath);//保存xml文件
}
}
#endregion
#region 退出方法
public void Quit()
{
#if UNITY_EDITOR
//在编译器模式下退出
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit();//发布之后退出的方法
#endif
}
#endregion
#region 打开注册面板
public void OpenRegisterPass()
{
registerPass.gameObject.SetActive(true);
}
#endregion
#region 关闭注册面板
public void CloseRegisterPass()
{
registerPass.gameObject.SetActive(false);
}
#endregion
#region 打开提示框信息
/// <summary>
/// 打开提示框
/// </summary>
public void OpenAlertPanel(string str)
{
//需要打开提示框情况:
//一:在登陆界面情况
//1.未输入任何东西点击登陆界面
//2.输入了但是密码不对
//3.输入未完整的信息
//4.提示登陆成功
//二:在注册界面情况
//1.信息没有填写完整
//2.两次密码不一致
//3.用户名重复
//4.提示完成注册
AlertPanel.gameObject.SetActive(true);
labelInfo.text = str;
labelAlert.text = str;
}
#endregion
#region 关闭提示框信息
/// <summary>
/// 关闭提示框
/// </summary>
public void CloseAlertPanel()
{
AlertPanel.gameObject.SetActive(false);
}
#endregion
#region 校验注册界面用户信息显示提示
public void RegiterUser()
{
//两次密码不一致
if (inputPassword.text != inputConfimPassword.text)
{
OpenAlertPanel("两次密码不一致");
return;
}
//信息不完整
if (inputAccount.text == "" || inputPassword.text == "" || inputConfimPassword.text == "" || inputTelePhone.text == "" || inputQQ.text == "")
{
OpenAlertPanel("信息不完整");
return;
}
#region 用户名被使用过了
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlPath);
XmlNodeList xmlList = xmlDoc.SelectSingleNode("Root").ChildNodes;//返回根节点下面的所以子节点
foreach (XmlElement item in xmlList)
{
if (item.GetAttribute("user_name") == inputAccount.text)
{
OpenAlertPanel("用户名已经被占用!");
return;
}
}
#endregion
#region 保存注册信息
XmlNode root = xmlDoc.SelectSingleNode("Root");
XmlElement user = xmlDoc.CreateElement("user");
user.SetAttribute("user_name", inputAccount.text);
user.SetAttribute("user_pass", inputPassword.text);
user.SetAttribute("user_tel", inputTelePhone.text);
user.SetAttribute("user_qq", inputQQ.text);
root.AppendChild(user);
xmlDoc.Save(xmlPath);
OpenAlertPanel("恭喜,注册成功!");
inputAccount.text = "";
inputPassword.text = "";
inputConfimPassword.text = "";
inputTelePhone.text = "";
inputQQ.text = "";
CloseRegisterPass();//关闭注册面板
#endregion
}
#endregion
#region 登陆按钮监听的事件
public void LoginGame()
{
if (inputLoginAccountt.text == "" || inputLoginPassword.text == "")
{
OpenAlertPanel("用户名或者密码不能为空");
return;
}
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlPath);
XmlNodeList nodeList = xmlDoc.SelectSingleNode("Root").ChildNodes;
bool isHasAccount = false;
foreach (XmlElement item in nodeList)
{
if (item.GetAttribute("user_name") == inputLoginAccountt.text)
{
isHasAccount = true;
var pass = item.GetAttribute("user_pass");
if (inputLoginPassword.text == pass)
{
OpenAlertPanel("登陆成功!");
Application.OpenURL("www.baidui.com");
return;
}
else
{
OpenAlertPanel("登陆失败,密码错误");
return;
}
}
}
if (!isHasAccount)
{
OpenAlertPanel("用户名不存在");
}
}
#endregion
}
终于写完了,代码还算吧比较清晰吧!不足的地方请多多指教哦!