Unity利用XML制作一個簡易的登錄系統(tǒng)
通過XML文件保存賬號密碼,存儲到本地,不連接數(shù)據(jù)庫的簡易登錄系統(tǒng)。
1.創(chuàng)建一個XML文件,設(shè)置一個初始的賬號密碼。
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", "");//設(shè)置xml文件編碼格式為UTF-8 XmlElement root = xml.CreateElement("Data");//創(chuàng)建根節(jié)點 XmlElement info = xml.CreateElement("Info");//創(chuàng)建子節(jié)點 info.SetAttribute("賬號", "admin");//創(chuàng)建子節(jié)點屬性名和屬性值 info.SetAttribute("密碼", "123123"); root.AppendChild(info);//將子節(jié)點按照創(chuàng)建順序,添加到xml xml.AppendChild(root); xml.Save(localPath);//保存xml到路徑位置 Debug.Log("創(chuàng)建XML成功!"); } }
2.讀取XML文件,將賬號密碼存儲到列表數(shù)組中。每次讀取的時候需要把index的值設(shè)置成0,重新錄入賬號密碼,不然會出現(xiàn)一個賬號密碼保存兩次的問題。
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) {//遍歷所以子節(jié)點 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.列表數(shù)組的創(chuàng)建
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");//獲取根節(jié)點 XmlElement info = xml.CreateElement("Info");//創(chuàng)建新的子節(jié)點 info.SetAttribute("賬號", zhanghao);//創(chuàng)建新子節(jié)點屬性名和屬性值 info.SetAttribute("密碼", mima); root.AppendChild(info);//將子節(jié)點按照創(chuàng)建順序,添加到xml xml.AppendChild(root); xml.Save(localPath);//保存xml到路徑位置 Debug.Log("添加XML成功!"); } }
5.判斷賬號密碼是否正確,登錄的時候判斷IsLogin的值,如果IsLogin的值為false就是登錄失敗,如果值為True就是登錄成功
public bool IsLogin; public Message[] messages; /// <summary> /// 賬號密碼個數(shù) /// </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; } } }
到此這篇關(guān)于Unity利用XML制作一個簡易的登錄系統(tǒng)的文章就介紹到這了,更多相關(guān)Unity XML登錄系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C# Winform 禁止用戶調(diào)整ListView的列寬
在使用 ListView 的時候, 有時我們不想讓別人隨意調(diào)整列寬, 或者某幾列的列寬, 以便達(dá)到美觀, 或者隱藏數(shù)據(jù)的作用. 那么可以用一下代碼來實現(xiàn)2011-05-05C# Stream 和 byte[] 之間的轉(zhuǎn)換
Stream 和 byte[] 之間的轉(zhuǎn)換2008-03-03詳解C# 利用反射根據(jù)類名創(chuàng)建類的實例對象
這篇文章主要介紹了詳解C# 利用反射根據(jù)類名創(chuàng)建類的實例對象,“反射”其實就是利用程序集的元數(shù)據(jù)信息,感興趣的小伙伴們可以參考一下。2017-03-03C#使用Win32?Api實現(xiàn)進(jìn)程注入到wechat的過程
這篇文章主要介紹了C#使用Win32?Api實現(xiàn)進(jìn)程注入到wechat,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09