gpt4 book ai didi

c# - Unity XmlDocument 函数并不总是有效

转载 作者:太空宇宙 更新时间:2023-11-03 11:40:51 25 4
gpt4 key购买 nike

在unity3d中使用XmlDocument函数有什么需要注意的吗?我遇到了这个奇怪的问题:当从 Awake() 或 OnGUI() 调用使用 XmlDocument 的函数时,文档被成功编辑。但是当它从按钮事件内部调用时,我在保存文档之前得到了一个编辑良好的字符串,它无法修改文档本身。

编辑文件的函数(有时):

    public static void addTestProfile () {

string path = Application.dataPath + "/Documents/Profiles.xml";
Hashtable tempTable = new Hashtable();
tempTable.Add("user", "chuck II");
tempTable.Add("url", "funny");
tempTable.Add("passwrod", "1234asdf");
General.StoreProfile(tempTable, path);
}


public static void StoreProfile(Hashtable profile, string path) {
Debug.Log("profile to store name: " + profile["password"]);
XmlDocument doc = new XmlDocument();
doc.Load(profilesPath);

XmlElement element = doc.CreateElement("Profile");

XmlElement innerElement1 = doc.CreateElement("user");
innerElement1.InnerText = profile["user"] as string;
element.AppendChild(innerElement1);

XmlElement innerElement2 = doc.CreateElement("url");
innerElement2.InnerText = profile["url"] as string;
element.AppendChild(innerElement2);

XmlElement innerElement3 = doc.CreateElement("password");
innerElement3.InnerText = profile["password"] as string;
element.AppendChild(innerElement3);
doc.DocumentElement.AppendChild(element);

doc.Save(profilesPath);
Debug.Log(doc.InnerXml);
}

我创建了一个新项目来测试这个问题,在调用 Application.loadLevel() 之前调用时文件没有被编辑;

这里运行良好,文件本身已被编辑:

void OnGUI () {
General.addTestProfile(); // General is the singleton class that contains the function implementation
}

但有些这不起作用:

// GUI Save btn
if (GUI.Button(new Rect(255, 20, 60, 35), "Add")) {
General.addTestProfile(); // General is the singleton class that contains the function implementation
Application.LoadLevel(0);
}

当我在 save() xmlDocument 函数之前打印结果字符串时,它显示了新项目,但不知何故 xml 文件保持不变。我是否遗漏了一些可能与执行顺序有关的重要信息?超时之类的东西?

最佳答案

这只是一个大胆的猜测,但这行得通吗?

// PSEUDOCODE
bool pressed

function OnGUI()
if GUI.Button then
pressed = true
end if
if pressed then
addTestProfile();
end if
end function

我从这个链接得到了帮助:http://answers.unity3d.com/questions/9538/new-to-unity-3d-gui-button-help-needed-please

关于c# - Unity XmlDocument 函数并不总是有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4857597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com