首頁 > 軟體

Unity利用XML製作一個簡易的登入系統

2022-03-18 16:00:44

通過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登入系統內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com