日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Unity利用XML制作一個簡易的登錄系統_C#教程

作者:Chinesettt ? 更新時間: 2022-05-21 編程語言

通過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 vs = new List();
}

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;
    ///     /// 賬號密碼個數    /// 
/// 
    /// 判斷賬號密碼是否正確
    /// 
    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;
            }
        }
    }

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

欄目分類
最近更新