Unity3d 新建xml 读取xml
在游戏开发中,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相关推荐
- php如何新建xml文件,PHP新建XML打开XML读取XML怎么写
下面青岛星网跟大家分享一个PHP操作XML类,其中包括了大量注释,用于在PHP中执行xml的相关操作,比如新建一个XML文件,打开一个XML文件,读取其中的内容等. define("ente ...
- python读取xml文件信息失败_通过XML读取XML文件时出错。
我试图用python读取XML文件xml.etree但有时对于某些文件,我在解析文件时会出现内存错误.我的XML文件大小是912Mb,这个问题与文件大小有关吗?在 代码:from xml.etree ...
- 用 PHP 读取 XML
清单 1. XML 图书列表示例 <books><book><author>Jack Herrington</author><title>P ...
- Flash读取xml奥秘
首先讲的是xml的格式, <?xml version="1.0" encoding="utf-8"?>(注释:最好使用utf-8编码) <格式 ...
- xml getelementsbytagname php,用PHP编写和读取XML的几种方式
一.使用DOM生成和读取XML文件 实例一: //Creates XML string and XML document using the DOM $dom = new DomDocument('1 ...
- php读取xml文件,并存入数据库
附:xml文件 <beans> <bean> <yearMonth>201612</yearMonth> ...
- 读取xml到DataSet中去
XML如下: <?xml version="1.0" encoding="utf-8" ?> <Config><System> ...
- XML 解析XML文档 XML约束
XML 什么是XML Extensible Markup Language(可扩展的标记语言) 他是一个语言,有自己的语法,和Java以及其他的编程无关 "标记" 在文件中包含类似 ...
- Xml读取和写入以及新建
有时候要用到Xml的读取和写入,甚至有时候需要新建一个Xml,但是好长时间不用这东西,都忘了,所以就写了一个类库,想用的时候直接拿过来用就OK了 下面是代码 using System; using S ...
最新文章
- php windows应用开发,开发老手谈Windows平台的PHP应用开发
- SDUT_2116 数据结构实验之链表一:顺序建立链表
- Android Kotlin Exception处理
- kvm虚拟机设置万兆网卡_SR-IOV 10Gb 万兆网卡支持
- 域嵌套太深_pyspark如何修改嵌套结构域
- php 第二次出现位置,php – Preg Replace – 替换匹配的第二次出现
- 通过 ASP.NET 2.0 的数据增强功能来提高负载和减少代码 --作者:Dino Esposito
- UGUI的InputField
- 【数字信号调制】基于matlab GUI FSK调制+解调【含Matlab源码 645期】
- 奋斗吧,程序员——第二十九章 伤心桥下春波绿,疑是惊鸿照影来
- 计算机应用中级职称报告,中级工程师职称总结
- dmz和端口映射_DMZ和端口映射有何区别
- office 打开wps乱_wps和office冲突怎么办
- specular图使用方法_次世代贴图教程_SPECULAR、SPECULAR POWER原理教程
- 没有产权证的车库能不能随时拆掉
- Identifying App Installations
- 计算机代码画玫瑰,如何用代码画一朵玫瑰花
- comsol如何定义狄利克雷边界_COMSOL中周期性边界条件的应用
- CFont::CreateFont
- Excel函数之— SUMPRODUCT用法(二),太强大了