【发布时间】:2016-01-31 05:51:05
【问题描述】:
嗨,伙计们,我想你们或许可以帮助我。制作简单的教育问答类游戏,我卡在最后一步 > 我无法从 XML 文件加载数据。 这是一个xml文件的例子。
<QuestionData>
<Question>
<questionText>4+4?</questionText>
<answerA>1</answerA>
<answerB>2</answerB>
<answerC>8</answerC>
<answerD>4</answerD>
<correctAnswer>8</correctAnswer>
</Question>
<Question>
.......(another question+answers)
</Question>
</QuestionData>
这应该加载 XML 数据
using UnityEngine;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
using System;
public struct Question {
public string questionText;
public string answerA;
public string answerB;
public string answerC;
public string answerD;
public string correctAnswerID;
}
[XmlRoot]
public class QuestionData {
[XmlArray("questions")]
[XmlArrayItem("Question")]
public List<Question> questions = new List<Question>();
public static QuestionData LoadFromText(string text) {
try {
XmlSerializer serializer = new XmlSerializer(typeof(QuestionData));
return serializer.Deserialize(new StringReader(text)) as QuestionData;
} catch (Exception e) {
UnityEngine.Debug.LogError(e);
return null;
}
}
}
现在,这是我将数据附加到特定游戏对象的脚本。但是,xml数据的加载似乎根本不起作用。
public class QuestionLoading : MonoBehaviour {
[SerializeField]
public TextAsset questionDataXMLFile;
public QuestionData questionData;
public Question currentQuestion;
void Start() {
questionData = QuestionData.LoadFromText(questionDataXMLFile.text);
Debug.Log (questionData.questions.Count);
Debug.Log (currentQuestion.questionText);
}
当我调试 questionData.questions.Count 和 currentQuestion 时,我总是得到 0 值。知道为什么吗?
【问题讨论】:
标签: xml unity3d xml-parsing