Я отредактировал свой ответ и удалил уже не относящиеся к делу части.
После нажатия кнопки «Проверить» сначала удалите текст в текстовом поле результата, а затем выполните всю другую логику.
Для стирания текста вы можете использовать следующий фрагмент кода:
Text buttonText = buttonName.GetComponentInChildren<Text>();
buttonText.text = string.Empty;
Возможно, вы хотите использовать это свойство "buttonText" как глобальное и получить его один раз, при запуске программы, а не при каждом нажатии кнопки. Это не будет иметь большого значения в небольшой программе, но это правильный способ мышления.
После проверки вашего кода я могу подвести итог вашей проблемы:
Вся логика вашей программы ошибочна, есть много ненужных сложных вещей, которые делают ее неудачной в нескольких местах. Понятно, что все проходят через эту стадию, нечего стыдиться или беспокоиться. В любом случае, это мое субъективное мнение, которое может быть ошибочным.
Возвращаясь к вашему коду, все, что вам нужно сделать, это обновить текст результата, скажем «txtResult», как только что-нибудь произойдет.
После того, как вы щелкнете по номеру, выполните «txtResult + = numberClicked».
Как только вы нажмете клавишу Backspace, удалите последний символ txtResult. Здесь - это вопрос с множеством ответов о том, как это сделать, это действительно просто.
После того, как вы нажмете «Проверить», если это правильный номер, установите txtResult пустым.
Кроме того, каждый раз, когда вы обновляете txtResult, вы, конечно, тоже должны обновлять пользовательский интерфейс. Допустим, вы делаете это каждый раз, это будет одна строка для обновления txtResult и одна строка для обновления пользовательского интерфейса для каждого из 3 приведенных выше случаев. Итак, всего 6 строк. Проверка на пустую строку в то время как в функции «Backspace» добавляет еще одну строку. Моя математика может быть неправильной, но в любом случае, это довольно короткий и простой подход, ничего особенного.
Вам просто не хватает соответствующих знаний, иначе вы не стали бы делать этот кошмар в своей функции Backspace.
Что касается функции "nameFunc", целые 6 строк можно заменить на "txtResult + = алфавит", не так ли? Я не уверен, что вы получаете в параметре алфавита, но в любом случае, строка - это массив символов, так что вы также можете сделать «txtResult + = alphabet [0]» вместо того, что у вас есть.
Итак, в целом, вы все поняли правильно, логика была правильной, вы выяснили основные аспекты. Но ты слишком сложен. Я верю, что вы будете в порядке после прочтения всего этого текста, и желаю вам всего наилучшего.