服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - Unity利用XML制作一个简易的登录系统

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

2023-02-22 16:28Chinesettt C#

这篇文章主要介绍了如何在Unity中利用XML文件制作一个简易的登录系统,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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,重新录入账号密码,不然会出现一个账号密码保存两次的问题。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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);
        }
    }

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

3.列表数组的创建

?
1
2
3
4
5
6
7
public Message[] messages;
//这个放在外面
[System.Serializable]
public class Message
{
    public List<string> vs = new List<string>();
}

4.添加账号密码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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就是登录成功

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
     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登录系统内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/Chinesettt/article/details/123543207

延伸 · 阅读

精彩推荐
  • C#C#中new的几种用法详解

    C#中new的几种用法详解

    本文主要介绍了C#中new的几种用法,具有很好的参考价值,下面跟着小编一起来看下吧...

    李斌13402021-12-27
  • C#C#字符串使用密钥进行加解密

    C#字符串使用密钥进行加解密

    这篇文章主要为大家详细介绍了C#字符串使用密钥进行加解密的代码,C#字符串加密和解密实现代码,感兴趣的小伙伴们可以参考一下...

    C#教程网10762021-12-03
  • C#C#中的局部变量冲突问题

    C#中的局部变量冲突问题

    今天小编就为大家分享一篇C#中的局部变量冲突问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    grey_csdn3482022-08-11
  • C#Winform窗体圆角设计代码

    Winform窗体圆角设计代码

    这篇文章主要为大家详细介绍了Winform窗体圆角设计代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Jurieo11732021-12-16
  • C#c# 实现康威生命游戏(细胞自动机)的示例

    c# 实现康威生命游戏(细胞自动机)的示例

    这篇文章主要介绍了c# 实现康威生命游戏(细胞自动机)的示例,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下...

    鱼小淮6662022-11-02
  • C#C# 实现与现有.NET事件桥接简单实例

    C# 实现与现有.NET事件桥接简单实例

    这篇文章主要介绍了C# 实现与现有.NET事件桥接简单实例的相关资料,需要的朋友可以参考下...

    aofengdaxia8352021-12-28
  • C#C# 中如何使用Thread

    C# 中如何使用Thread

    这篇文章主要介绍了C# 中使用 Thread的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...

    一线码农10972022-10-31
  • C#C# winform打开Excel文档的方法总结(必看篇)

    C# winform打开Excel文档的方法总结(必看篇)

    下面小编就为大家带来一篇C# winform打开Excel文档的方法总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看...

    C#教程网8902021-12-21