【发布时间】:2016-01-20 01:05:29
【问题描述】:
我正在制作一个测验/琐事游戏,并将问题存储在 XML 文件中,它得到一个随机问题。一切正常,但我想保持随机,但在显示每个问题之前不显示相同的问题。
public struct Question {
public string questionText;
public string answerA;
public string answerB;
public string answerC;
public string answerD;
public int correctAnswerID;
}
[XmlRoot("QuestionsRoot")]
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("Exception loading question data: " + e);
return null;
}
}
我在我的其他脚本中使用它来获得一个随机问题:
questionData = QuestionData.LoadFromText(questionDataXMLFile.text)
q = Random.Range(0, questionData.questions.Count);
currentQuestion = questionData.questions[q];
【问题讨论】:
-
如果你问如何实现fisher-yates,这个网站和维基百科上有很多例子。如果您真的尝试过实现它,我们需要查看该代码,并且您需要解释它有什么问题。
-
@Blorgbeard 我试过 for (int i = 1; i
-
所以使用
Question x而不是string x。 -
另外,为什么不在原始帖子中发布该代码和错误?您需要解释您的实际问题以获得帮助。请注意,您可以edit您的帖子!
-
好的,我会的。谢谢