我有一些代码从XML文件中读取文本,这些文件已经添加到assetsbundles中,从我看到的每个文件看起来似乎有一个包。
我想避免使用bundle并直接读取XML内容。现在使用捆绑包的代码是这样的:
foreach(KeyValuePair<string,int> kvp in xmlFileDic)
{
string name = kvp.Key;
string path = xmlBasePath + name + ".assetbundle";
int version = kvp.Value;
WWW www = WWW.LoadFromCacheOrDownload(path,kvp.Value);
yield return www;
AssetBundleRequest ab = www.assetBundle.LoadAsync(name,typeof(TextAsset));
yield return ab;
xmlLoadDic.Add(name,(TextAsset)ab.asset);
www.assetBundle.Unload(false);
...
and reading data
...
string gamerules = FileManagement.xmlLoadDic["GameMasterData"].text;
//string gamerules = www.text;
//Debug.Log("master path:"+masterPath+"game rules:"+gamerules);
System.IO.TextReader reader = new System.IO.StringReader(gamerules);
SmallXmlParser parser = new SmallXmlParser();
MasterDataHandler handler = new MasterDataHandler();
parser.Parse(reader,handler);
mPhaseList = handler.phaseList;
有关如何轻松完成此任务的任何提示?
答案 0 :(得分:0)
你可以这样做。这将从Resources文件夹加载XML文件并加载到XElement中,您可以使用LinQ来读取和处理它。以下是一些示例代码,可帮助您入门:
public class XMLReader : MonoBehaviour
{
XElement someXML;
void Awake()
{
TextAsset textAsset = (TextAsset)Resources.Load("Name_OF_XML_File");
TextReader txtReader = new StringReader(textAsset.text);
someXML= XElement.Load(txtReader);
string someData = (from data in someXML.Descendants("node") select data.Element("Element_Name").Value).ToString();
}
}