//data for display
{newQues = "abc"; string[] ans = { "abc", "bcd", "cde", "def" }; answer = "abc"; }
public IEnumerator DisplayQues() //use to display question
{
yield return new WaitForSeconds(0.25f);
Ques.GetComponent().text = newQues;
ansNum = Random.Range(0, ans.Length);
AnsA = ans[ansNum];
ans = ans.Except(new string[] { ans[ansNum] }).ToArray();
ansNum = Random.Range(0, ans.Length);
AnsB = ans[ansNum];
ans = ans.Except(new string[] { ans[ansNum] }).ToArray();
ansNum = Random.Range(0, ans.Length);
AnsC = ans[ansNum];
ans = ans.Except(new string[] { ans[ansNum] }).ToArray();
ansNum = Random.Range(0, ans.Length);
AnsD = ans[ansNum];
ans = ans.Except(new string[] { ans[ansNum] }).ToArray();
AnswerA.GetComponent().text = AnsA;
AnswerB.GetComponent().text = AnsB;
AnswerC.GetComponent().text = AnsC;
AnswerD.GetComponent().text = AnsD;
}
При воспроизведении сцены отображается сообщение «NullReferenceException: ссылка на объект не установлена на экземпляр объекта».
В строке ansNum возникает ошибка. = Random.Range(0, ans.Length);
Как заменить этот код?
ansNum = Random.Range(0, ans.Length);
AnsA = ans[ansNum];
ans = ans.Except(new string[] { ans[ansNum] }).ToArray();
ansNum = Random.Range(0, ans.Length);
AnsB = ans[ansNum];
ans = ans.Except(new string[] { ans[ansNum] }).ToArray();
ansNum = Random.Range(0, ans.Length);
AnsC = ans[ansNum];
ans = ans.Except(new string[] { ans[ansNum] }).ToArray();
ansNum = Random.Range(0, ans.Length);
AnsD = ans[ansNum];
ans = ans.Except(new string[] { ans[ansNum] }).ToArray();
Подробнее здесь: https://stackoverflow.com/questions/782 ... repetition