Unity利用XML制作一个简易的登录系统

 更新时间:2022年03月18日 14:24:08   作者:Chinesettt  
这篇文章主要介绍了如何在Unity中利用XML文件制作一个简易的登录系统,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

通过XML文件保存账号密码,存储到本地,不连接数据库的简易登录系统。

1.创建一个XML文件,设置一个初始的账号密码。

 public void Creat()
    {
        localPath = UnityEngine.Application.streamingAssetsPath + "/" + "MyXML.xml";
        if (!File.Exists(localPath))
        {
            XmlDocument xml = new XmlDocument();
            XmlDeclaration xmldecl = xml.CreateXmlDeclaration("1.0", "UTF-8", "");//设置xml文件编码格式为UTF-8
            XmlElement root = xml.CreateElement("Data");//创建根节点
            XmlElement info = xml.CreateElement("Info");//创建子节点
            info.SetAttribute("账号", "admin");//创建子节点属性名和属性值
            info.SetAttribute("密码", "123123");
            root.AppendChild(info);//将子节点按照创建顺序,添加到xml
            xml.AppendChild(root);
            xml.Save(localPath);//保存xml到路径位置
            Debug.Log("创建XML成功!");
        }
    }

2.读取XML文件,将账号密码存储到列表数组中。每次读取的时候需要把index的值设置成0,重新录入账号密码,不然会出现一个账号密码保存两次的问题。

void ReadXML()
    {
        localPath = UnityEngine.Application.streamingAssetsPath + "/" + "MyXML.xml";
        if (File.Exists(localPath))
        {
            XmlDocument xml = new XmlDocument();
            xml.Load(localPath);//加载xml文件
            XmlNodeList nodeList = xml.SelectSingleNode("Data").ChildNodes;
            MimaZu = nodeList.Count;
            foreach (XmlElement xe in nodeList)
            {//遍历所以子节点
 
                if (xe.Name == "Info")
                {
                    Debug.Log(xe.GetAttribute("账号"));//获取Name属性值
                    Debug.Log(xe.GetAttribute("密码"));
                    messages[index].vs.Add(xe.GetAttribute("账号"));
                    messages[index].vs.Add(xe.GetAttribute("密码"));
                    index += 1;
                    //messages.Add(new string[] { xe.GetAttribute("账号"), xe.GetAttribute("密码") });
                    //Debug.Log(vs);
                }
            }
            Debug.Log("读取XML成功!" + xml.OuterXml);
        }
    }

3.列表数组的创建

public Message[] messages;
//这个放在外面
[System.Serializable]
public class Message
{
    public List<string> vs = new List<string>();
}

4.添加账号密码

 public void AddXML(string zhanghao, string mima)
    {
        localPath = UnityEngine.Application.streamingAssetsPath + "/" + "MyXML.xml";
        if (File.Exists(localPath))
        {
            XmlDocument xml = new XmlDocument();
            xml.Load(localPath);//加载xml文件
            XmlNode root = xml.SelectSingleNode("Data");//获取根节点
            XmlElement info = xml.CreateElement("Info");//创建新的子节点
            info.SetAttribute("账号", zhanghao);//创建新子节点属性名和属性值
            info.SetAttribute("密码", mima);
            root.AppendChild(info);//将子节点按照创建顺序,添加到xml
            xml.AppendChild(root);
            xml.Save(localPath);//保存xml到路径位置
            Debug.Log("添加XML成功!");
        }
    }

5.判断账号密码是否正确,登录的时候判断IsLogin的值,如果IsLogin的值为false就是登录失败,如果值为True就是登录成功

     public bool IsLogin; 
    public Message[] messages;
    /// <summary>    /// 账号密码个数    /// </summary>
/// <summary>
    /// 判断账号密码是否正确
    /// </summary>
    public void Login()
    {
        for (int i = 0; i < MimaZu; i++)
        {
            int index = i;
            if (ZhangHao.text == messages[index].vs[0] && Mima.text == messages[index].vs[1])
            {
                if (messages[index].vs[0] == null)
                    return;
                if (messages[index].vs[1] == null)
                    return;
                IsLogin = true;
                return;
            }
            else if (ZhangHao.text != messages[index].vs[0] && Mima.text != messages[index].vs[1])
            {
                IsLogin = false;
            }
        }
    }

到此这篇关于Unity利用XML制作一个简易的登录系统的文章就介绍到这了,更多相关Unity XML登录系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深入理解C#索引器(一种支持参数的属性)与属性的对比

    深入理解C#索引器(一种支持参数的属性)与属性的对比

    本篇文章是对C#索引器(一种支持参数的属性)与属性的对比进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • C#实现老板键功能的代码

    C#实现老板键功能的代码

    最近在做项目中遇到需要增加个老板键功能,找一惯的方式,开始从网络下手寻找: 关键字类似”C# 老板键“,一搜,一堆又一堆,然而出来的代码大多数都不是太合适,下面给大家分享下自己的解决方案已经一个网友的解决方案,有需要的小伙伴可以参考下。
    2015-05-05
  • 深入理解C♯ 7.0中的Tuple特性

    深入理解C♯ 7.0中的Tuple特性

    这篇文章主要介绍了C#7中Tuple特性的相关资料,文中通过示例代码介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友可以们下面来一起学习学习吧。
    2017-03-03
  • C# WinForm遍历窗体控件的3种方法

    C# WinForm遍历窗体控件的3种方法

    这篇文章主要介绍了C# WinForm遍历窗体控件的3种方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-04-04
  • C#使用HtmlAgilityPack组件解析html文档

    C#使用HtmlAgilityPack组件解析html文档

    这篇文章介绍了C#使用HtmlAgilityPack组件解析html文档的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C# 设计模式系列教程-代理模式

    C# 设计模式系列教程-代理模式

    代理模式对客户端来说,隐藏了真实对象的细节及复杂性,实现了客户端(调用者)与真实对象的松耦合,提高了运行速度。
    2016-06-06
  • 浅谈c#中config.exe 引发的一些问题

    浅谈c#中config.exe 引发的一些问题

    下面小编就为大家分享一篇浅谈c#中config.exe 引发的一些问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • C# RSA分段加解密实现方法详解

    C# RSA分段加解密实现方法详解

    这篇文章主要介绍了C# RSA分段加解密实现方法,结合具体实例形式分析了C# RSA加密解密的原理与具体实现技巧,需要的朋友可以参考下
    2017-04-04
  • 聊聊C#中的Mixin的具体用法

    聊聊C#中的Mixin的具体用法

    本文主要介绍了C#中的Mixin的具体用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • C# 输出字符串到文本文件中的实现代码

    C# 输出字符串到文本文件中的实现代码

    本文通过一个简单的代码给大家介绍C# 输出字符串到文本文件中,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-05-05

最新评论