c# - 如何在 Unity 中用 C# 编写 XML 文件?

标签 c# xml multithreading unity3d

有人请帮忙!这让我很困惑。我在互联网上找不到任何人可以很好地解释这一点。所以这就是我需要的: 我需要有人解释如何在 Unity 中创建 XML 文件。人们告诉我要看流媒体作家。我搜索过这个,但没有人提供有关如何编写它的教程。我也不知道 .NET 是什么,所以请不要给我那个作为答案。我也查看了 XML 文件的 Microsoft 页面,但找不到正确的答案。这就是我要找的所有内容:

我希望能够写出这样的东西:

<Player>

    <Level>5<\Level>  
    <Health>500<\Health>  

<\Player>

如何制作这样的文件并将其导入 Unity?我怎样才能让 Unity 读取这个文件并从这样的东西中提取信息?拜托,我对整个 .NET 和 XML 完全不了解。

最佳答案

假设您有一个 Player 类,如下所示:

[XmlRoot]
public class Player
{
    [XmlElement]
    public int Level { get; set; }

    [XmlElement]
    public int Health { get; set; }
}

这是一个完整的往返旅程,可以帮助您入门:

XmlSerializer xmls = new XmlSerializer(typeof(Player));

StringWriter sw = new StringWriter();
xmls.Serialize(sw, new Player { Level = 5, Health = 500 });
string xml = sw.ToString();

Player player = xmls.Deserialize(new StringReader(xml)) as Player;

xml 是:

<?xml version="1.0" encoding="utf-16"?>
<Player xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Level>5</Level>
  <Health>500</Health>
</Player>

你猜 player 与我们序列化的原始对象完全一样。

如果你想对文件进行序列化/反序列化,你可以这样做:

using (var stream = File.OpenWrite("my_player.xml"))
{
    xmls.Serialize(stream, new Player { Level = 5, Health = 500 });
}

Player player = null;
using (var stream = File.OpenRead("my_player.xml"))
{
    player = xmls.Deserialize(stream) as Player;
}

编辑:

如果您想要显示的 XML:

XmlSerializer xmls = new XmlSerializer(typeof(Player));

XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
XmlWriterSettings settings = new XmlWriterSettings { OmitXmlDeclaration = true, Indent = true };
using (var stream = File.OpenWrite("my_player.xml"))
{
    using (var xmlWriter = XmlWriter.Create(stream, settings))
    {
        xmls.Serialize(xmlWriter, new Player { Level = 5, Health = 500 }, ns);
    }
}

Player player = null;
using (var stream = File.OpenRead("my_player.xml"))
{
    player = xmls.Deserialize(stream) as Player;
}

关于c# - 如何在 Unity 中用 C# 编写 XML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17286308/

相关文章:

python - 如何在 Python 中读取 XML header

.net - 终结器线程的范围是什么 - 每个应用程序域或每个进程?

java - CopyOnWriteArrayList 抛出 CurrentModificationException

java - 如何从服务器连接两个客户端

c# - 类型或命名空间定义,或具有相同数量括号的文件结束预期错误

c# - 在设计模式下我们如何指定表单的客户区大小?

c# - XDocument 不会解析 html 实体(例如 ),但 XmlDocument 会

时间:2019-05-17 标签:c#EntityFramework: An error occurred accessing the database

c# - 如何根据用户角色操作 WPF GUI

c# - 将 CDATA 附加到字符串