在游戏开发中,Xml常常被用来作为技能配置、地图配置、人物动作配置等配置文件。Unity3d内置的Xml库让我们非常方便地就能够新建Xml和读取Xml。

以下是一个样例,新建了一个Xml文档,而且读取它。

using UnityEngine;
using System.Collections;
using System.IO;
using System.Xml;
using System.Text;public class XmlTest : MonoBehaviour {XmlElement m_roleMotions = null;//人物动作;XmlElement m_skills = null;//人物技能;// Use this for initializationvoid Start () {//CreateXml();//ReadXml();ReadFileToXml();}// Update is called once per framevoid Update () {}void CreateXml(){string filepath = Application.dataPath + "/Resources/1013000.xml";if (!File.Exists(filepath)){//创建xml实例;XmlDocument xmlDoc = new XmlDocument();//创建character;XmlElement root = xmlDoc.CreateElement("character");/***创建roleMotions Start***/XmlElement roleMotions = xmlDoc.CreateElement("roleMotions");XmlElement motionInfo = xmlDoc.CreateElement("motionInfo");XmlElement motion = xmlDoc.CreateElement("motion");motion.SetAttribute("clipName", "enter_ready");motion.SetAttribute("isLoop", "false");motion.SetAttribute("moveEndTime", "0");motion.SetAttribute("moveStartTime", "0");motionInfo.AppendChild(motion);roleMotions.AppendChild(motionInfo);root.AppendChild(roleMotions);/***创建roleMotions End***//***创建skills Start***/XmlElement skills = xmlDoc.CreateElement("skills");XmlElement skill = xmlDoc.CreateElement("skill");skill.SetAttribute("name", "普攻");skill.SetAttribute("motion", "RMT_Attack1");skills.AppendChild(skill);root.AppendChild(skills);/***创建skills End***/xmlDoc.AppendChild(root);xmlDoc.Save(filepath);}else{Debug.LogError("File hava exist");}}void ReadXml(){string filepath = Application.dataPath + "/Resources/1013000.xml";if (!File.Exists(filepath)){Debug.LogError("xml file not exist");return;}XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load(filepath);//获取全部子节点;XmlNodeList nodeList = xmlDoc.SelectSingleNode("character").ChildNodes;foreach(XmlNode child in nodeList){if (child.Name == "roleMotions"){m_roleMotions = child as XmlElement;}else if (child.Name == "skills"){m_skills = child as XmlElement;}}Debug.Log("m_roleMotions = " + m_roleMotions.InnerXml);Debug.Log("m_skills = " + m_skills.InnerXml);}void ReadFileToXml(){string filepath = "1013000";GameObject obj = Resources.Load(filepath) as GameObject;TextAsset xmlAsset = Resources.Load(filepath,typeof(TextAsset)) as TextAsset;XmlDocument xmlDoc = new XmlDocument();xmlDoc.LoadXml(xmlAsset.text);//获取全部子节点;XmlNodeList nodeList = xmlDoc.SelectSingleNode("character").ChildNodes;foreach (XmlNode child in nodeList){if (child.Name == "roleMotions"){m_roleMotions = child as XmlElement;}else if (child.Name == "skills"){m_skills = child as XmlElement;}}Debug.Log("m_roleMotions = " + m_roleMotions.InnerXml);Debug.Log("m_skills = " + m_skills.InnerXml);}}

新建的Xml文档内容例如以下:

<character><roleMotions><motionInfo><motion clipName="enter_ready" isLoop="false" moveEndTime="0" moveStartTime="0" /></motionInfo></roleMotions><skills><skill name="普攻" motion="RMT_Attack1" /></skills>
</character>

读取Xml结果:

Unity3d 新建xml 读取xml相关推荐

  1. php如何新建xml文件,PHP新建XML打开XML读取XML怎么写

    下面青岛星网跟大家分享一个PHP操作XML类,其中包括了大量注释,用于在PHP中执行xml的相关操作,比如新建一个XML文件,打开一个XML文件,读取其中的内容等. define("ente ...

  2. python读取xml文件信息失败_通过XML读取XML文件时出错。

    我试图用python读取XML文件xml.etree但有时对于某些文件,我在解析文件时会出现内存错误.我的XML文件大小是912Mb,这个问题与文件大小有关吗?在 代码:from xml.etree ...

  3. 用 PHP 读取 XML

    清单 1. XML 图书列表示例 <books><book><author>Jack Herrington</author><title>P ...

  4. Flash读取xml奥秘

    首先讲的是xml的格式, <?xml version="1.0" encoding="utf-8"?>(注释:最好使用utf-8编码) <格式 ...

  5. xml getelementsbytagname php,用PHP编写和读取XML的几种方式

    一.使用DOM生成和读取XML文件 实例一: //Creates XML string and XML document using the DOM $dom = new DomDocument('1 ...

  6. php读取xml文件,并存入数据库

    附:xml文件 <beans>         <bean>             <yearMonth>201612</yearMonth>     ...

  7. 读取xml到DataSet中去

    XML如下: <?xml version="1.0" encoding="utf-8" ?> <Config><System> ...

  8. XML 解析XML文档 XML约束

    XML 什么是XML Extensible Markup Language(可扩展的标记语言) 他是一个语言,有自己的语法,和Java以及其他的编程无关 "标记" 在文件中包含类似 ...

  9. Xml读取和写入以及新建

    有时候要用到Xml的读取和写入,甚至有时候需要新建一个Xml,但是好长时间不用这东西,都忘了,所以就写了一个类库,想用的时候直接拿过来用就OK了 下面是代码 using System; using S ...

最新文章

  1. php windows应用开发,开发老手谈Windows平台的PHP应用开发
  2. SDUT_2116 数据结构实验之链表一:顺序建立链表
  3. Android Kotlin Exception处理
  4. kvm虚拟机设置万兆网卡_SR-IOV 10Gb 万兆网卡支持
  5. 域嵌套太深_pyspark如何修改嵌套结构域
  6. php 第二次出现位置,php – Preg Replace – 替换匹配的第二次出现
  7. 通过 ASP.NET 2.0 的数据增强功能来提高负载和减少代码 --作者:Dino Esposito
  8. UGUI的InputField
  9. 【数字信号调制】基于matlab GUI FSK调制+解调【含Matlab源码 645期】
  10. 奋斗吧,程序员——第二十九章 伤心桥下春波绿,疑是惊鸿照影来
  11. 计算机应用中级职称报告,中级工程师职称总结
  12. dmz和端口映射_DMZ和端口映射有何区别
  13. office 打开wps乱_wps和office冲突怎么办
  14. specular图使用方法_次世代贴图教程_SPECULAR、SPECULAR POWER原理教程
  15. 没有产权证的车库能不能随时拆掉
  16. Identifying App Installations
  17. 计算机代码画玫瑰,如何用代码画一朵玫瑰花
  18. comsol如何定义狄利克雷边界_COMSOL中周期性边界条件的应用
  19. CFont::CreateFont
  20. Excel函数之— SUMPRODUCT用法(二),太强大了

热门文章

  1. 乱谈卡巴CCTV黄金时段广告
  2. SQL Server 2005 Analysis Services实践(一)
  3. Linux服务器运维安全策略
  4. Dvsdk 下的CMEM学习
  5. WebSocket科普
  6. 一个基于链表的内存管理方案
  7. 正确设置asp.net网站的404错误页面
  8. 数据库的主键和外键总结
  9. 云原生分布式应用运行时 Dapr 在阿里的实践
  10. 常见的垃圾回收器算法有哪些,各有什么优劣?