今天改了下路径,结果发现XML导入不进去。。
xmlDoc.LoadXml(Resources.Load("XML/skillInput").ToString());
//xmlDoc.Load("skillInput.xml");
关键代码就这一句,在U3D里要放在Assect下面的Resources下面。注意没后缀。
贴一个自己写的XML技能
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Text;
using System.Threading;
using System.Xml;
using System;
using System.Collections;
public class LoadXML
{
public static LoadXML LoadingXML=new LoadXML();
public static void LoadPathXML()
{
//创建技能信息集合,用来存储所有的技能信息
List<SkillXMLData> skillList = new List<SkillXMLData>();
//XmlDocment专门用来解析XML文档
XmlDocument xmlDoc = new XmlDocument();
//选择要加载解析的xml文档名字;
xmlDoc.LoadXml(Resources.Load("XML/skillInput").ToString());
//xmlDoc.Load("skillInput.xml");
//得到根节点(xmlnode用来表示第一个节点)
XmlNode rootNode = xmlDoc.FirstChild;//获取第一个节点 skills
//得到根节点下面子节点集合
XmlNodeList skillNodeList = rootNode.ChildNodes;//用来获取当前结点下面所有子节点;
foreach (XmlNode skillNode in skillNodeList)
{
SkillXMLData skill = new SkillXMLData();
XmlNodeList fileNodeList = skillNode.ChildNodes;//获取skill节点下面所有节点
foreach (XmlNode fileNode in fileNodeList)
{
if (fileNode.Name == "id")//通过name数据 可以获取一个节点的名字
{
int id = Int32.Parse(fileNode.InnerText);//获取节点内部的文本;
skill.id = id;
}
else if (fileNode.Name == "name")
{
string name = fileNode.InnerText;
skill.name = name;
}
else if (fileNode.Name == "damage")
{
int damage = Int32.Parse(fileNode.InnerText);
skill.damage = damage;
}
else if (fileNode.Name == "speed")
{
skill.speed = Int32.Parse(fileNode.InnerText);
}
else if (fileNode.Name == "cost"){
skill.cost = Int32.Parse(fileNode.InnerText);
}
else if (fileNode.Name == "kind")
{
skill.kind = Int32.Parse(fileNode.InnerText);
}
else if (fileNode.Name == "doTime")
{
skill.doTime = float.Parse(fileNode.InnerText);
}
else if (fileNode.Name == "buffKind")
{
skill.buffKind = Int32.Parse(fileNode.InnerText);
}
else if (fileNode.Name == "addSpeed")
{
skill.addSpeed = float.Parse(fileNode.InnerText);
}
else if (fileNode.Name == "isDizz")
{
skill.isDizz = bool.Parse(fileNode.InnerText);
}
else if (fileNode.Name == "dizzTime")
{
skill.dizzTime = float.Parse(fileNode.InnerText);
}
else if (fileNode.Name == "CD")
{
skill.CD = float.Parse(fileNode.InnerText);
}
else if (fileNode.Name == "dis")
{
skill.dis = float.Parse(fileNode.InnerText);
}
}
SkillManager.skillManage.dictionarySkill.Add(skill.name, SkillManager.skillManage.skillCount++);
SkillManager.skillManage.skillListXML.Add(skill);
}
}
}