unity设计登陆界面

主界面
注册界面
提示信息
脚本代码绑定在Canvas面板上,其属性如下:
面板信息
按键面板上 on click()绑定设置:
绑定信息
脚本代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
#if UNITY_EDITOR
using UnityEditor;
#endif
//xml文件的命名空间
using System.IO;
using System.Xml;
public class GameLogin : MonoBehaviour
{


    public Image image_registered;
    public Image image_pro;
    public Text text_info;
    public Text text_pro;
    private string path;
    //注册框内同名变量
    public InputField InputField_name_zc;
    public InputField InputField_pass_zc;
    public InputField InputField_pass1_zc;
    public InputField InputField_tel_zc;
    public InputField InputField_qq_zc;
    //引用登陆账号密码同名变量
    public InputField InputField_name;
    public InputField InputField_pass;

    private void Start()
    {
    //Application.dataPath指的是生成exe文件后文件夹的位置
    //Application.dataPath资源文件夹下位置
        //path一定要初始化赋值,否则会出错
        path = Application.dataPath + "/user.xml";
        //判断_xmlpath文件存不存在,若不存在就创建
        if (!File.Exists(path))
        {
            //新建一个xml实例(文档对象)
            XmlDocument xmlDoc = new XmlDocument();
            //创建一个根节点
            XmlElement root = xmlDoc.CreateElement("Root");
         
            //创建用户子节点
            XmlElement user = xmlDoc.CreateElement("User");
            //创建用户特性(名字,密码,电话,QQ等)
            user.SetAttribute("user_name", "Admin");
            user.SetAttribute("user_pass", "123456");
            user.SetAttribute("user_tel", "12345678901");
            user.SetAttribute("user_qq", "00000");
            //将用户节点添加到root节点中
            root.AppendChild(user);
            //将root节点添加到文本中
            xmlDoc.AppendChild(root);
            //保存到_xmlpath(自动创建)
            xmlDoc.Save(path);

            Debug.Log("xml creat success!");
        }
    }
    //界面退出
    public void GameExit()
    {
#if UNITY_EDITOR
        UnityEditor.EditorApplication.isPlaying = false;
#endif
        //退出游戏
        Application.Quit();
    }
    //打开注册窗口
    public void OpenRegistered()
    {
        image_registered.gameObject.SetActive(true);

    }
    //关闭注册窗口
    public void CloseRegistered()
    {
        image_registered.gameObject.SetActive(false);
    }
    //打开提示框并显示信息
    public void ProDisplay_open(string str)
    {
        image_pro.gameObject.SetActive(true);
        text_info.text = str;
        text_pro.text = str;
    }
    //关闭提示框
    public void ProDisplay_close()
    {
        image_pro.gameObject.SetActive(false);
    }
    public void CreatRegistered()
    {
        // 判断注册内容是否为空
        if(InputField_name_zc.text==""||InputField_pass1_zc.text==""||InputField_pass_zc.text==""||InputField_qq_zc.text==""||InputField_tel_zc.text=="")
        {
            ProDisplay_open("注册信息有选项为空,请完善信息!");
            return;
        }
        //判断输入的两次密码是否一致
        if ( InputField_pass1_zc.text != InputField_pass_zc.text)
        {
            ProDisplay_open("两次输入的密码不一致!!");
            return;
        }
        //检测账号是否被占用
        XmlDocument xmlDoc = new XmlDocument();
        //打开用户文件
        xmlDoc.Load(path);
        //选择"Root"下的所有子节点
        XmlNodeList nodeList = xmlDoc.SelectSingleNode("Root").ChildNodes;
        //遍历所有子节点
        foreach(XmlElement xe in nodeList)
        {
            if(xe.GetAttribute("user_name")==InputField_name_zc.text)
            {
                ProDisplay_open("该用户名已被占用!请更换其他用户名!");
                return;
            }
        }
        //取得"Root"根节点
        XmlNode root = xmlDoc.SelectSingleNode("Root");
        //创建新的子节点
        XmlElement user = xmlDoc.CreateElement("User");
        //设置属性
        user.SetAttribute("user_name", InputField_name_zc.text);
        user.SetAttribute("user_pass", InputField_pass_zc.text);
        user.SetAttribute("user_tel", InputField_tel_zc.text);
        user.SetAttribute("user_qq", InputField_qq_zc.text);
        //将新节点加入到根节点
        root.AppendChild(user);
        //保存文档
        xmlDoc.Save(path);
        //提示框显示成功注册的消息
        ProDisplay_open("注册成功!");

        //清空已注册信息
        InputField_name_zc.text = "";
        InputField_pass1_zc.text = "";
        InputField_pass_zc.text = "";
        InputField_tel_zc.text = "";
        InputField_qq_zc.text = "";
    }
    //游戏登陆函数
    public void GameLanding()
    {

        //判断用户名和密码是否为空
        if(InputField_name.text==""||InputField_pass.text=="")
        {
            ProDisplay_open("用户名或密码不能为空!");
            return;
        }
        XmlDocument xmlDoc = new XmlDocument();
        //打开用户文件
        xmlDoc.Load(path);
        //选择"Root"下的所有子节点
        XmlNodeList nodeList = xmlDoc.SelectSingleNode("Root").ChildNodes;
        //遍历所有子节点
        foreach (XmlElement xe in nodeList)
        {
            //判断用户名是否注册
            if (xe.GetAttribute("user_name") == InputField_name.text)
            {
                var name_pass = xe.GetAttribute("user_pass");
                //判断密码是否正确
                if(InputField_pass.text==name_pass)
                {
                    ProDisplay_open("登录成功!");
                    Application.OpenURL("https://123.sogou.com/");
                    return; 
                }else
                {
                    ProDisplay_open("密码不正确,请重新输入!");
                    return;
                }
            }else
            {
                ProDisplay_open("登陆失败!密码错误!");
            }
            ProDisplay_open("此用户账号未被注册!请注册后再登录!");

        }
    }
    
}

脚本代码也只是仅仅满足基本的"注册账号,账号成功登录后打开网页"这类功能。
欢迎各类小白大神加入QQ群:818869194

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值