Я делаю игру Quiz/Trivia и задаю вопросы, хранящиеся в файле XML, и возникает случайный вопрос. Все работает отлично, но я хочу оставаться случайным, но не показывать тот же вопрос, пока не будет показан каждый вопрос.Случайные XML-вопросы с использованием Fisher-Yates Shuffle
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];
Если вы спрашиваете, как реализовать рыболовство, существует множество примеров на этом сайте и в Википедии. Если вы действительно пытались его реализовать, нам нужно увидеть этот код, и вам нужно объяснить, что с ним не так. – Blorgbeard
@Blorgbeard Я попытался с \t для (INT I = 1; я
IvayloDev
Так что используйте 'Question x' вместо' string x'. – Blorgbeard