Unity c # как сравнить текст из массива кнопок с другим массивом int? - PullRequest
0 голосов
/ 13 марта 2019

у меня есть два массива. одна из кнопок пользовательского интерфейса - с дочерним TextMeshProUGUI и другим массивом int. я хочу сравнить каждый элемент массива кнопок (текста) с массивом int, когда для всех кнопок назначено новое значение.

userInputs[] содержит кнопки, чтобы получить пользовательский ввод из 8 вариантов ответа на вопрос. correctAnswers[] содержит все правильные ответы.

Я могу проверить, все ли кнопки получили назначенные значения. тогда я проверяю ответы. здесь я хочу, чтобы изображение кнопки менялось на зеленый, если правильно, и на красный, если неправильно. Не в состоянии понять, как сравнить? пожалуйста помогите

public void CheckAnswers()
{
    int i = 0;
    int j = 0;
    // for (i = 0; i < userInputs.Length; i++)
    {

        foreach (Button userInput in userInputs)
            if (userInputs[i].GetComponentInChildren<TextMeshProUGUI>().text 
  == correctAnswers[j].ToString())
            {
                userInput.GetComponent<Image>().color = Color.green;
            }
            else
            {
                {
                    userInput.GetComponent<Image>().color = Color.red;
                }
            }
    }

1 Ответ

0 голосов
/ 13 марта 2019

Вам нужно поменять петли в вашем CheckAnswers(). Вы берете foreach цикл для userInputs и все еще увеличиваете его на int Это должно быть так.

        foreach (Button userInput in userInputs)
    {
 for (i = 0; i < userInputs.Length; i++)
            {
                    if (userInput.GetComponentInChildren<TextMeshProUGUI>().text 
        == correctAnswers[i].ToString())
                    {
                        userInput.GetComponent<Image>().color = Color.green;
                    }
                    else
                    {
                        {
                            userInput.GetComponent<Image>().color = Color.red;
                        }
                    }
    }
        }

Осторожно, потому что вы можете получить ошибку для Argument out of range exception, если ваши userInputs меньше, чем ваш правильный массив ответов. Я надеюсь, что это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...