#c# #visual-studio #unity3d
Вопрос:
Я создаю игру в Unity, в которой пользователь выбирает фразу из списка и получает очко, если фраза верна.
Проблема, с которой я сталкиваюсь, заключается в том, что, несмотря на выбор правильного ответа, когда код поступает на коммутатор, его правильный регистр не совпадает.
switch (answer.text)
{
case "it's a potato":
points ;
}
если я сделаю Debub.log(answer.text);
это, я получу "it's a potato"
это как answer.text
добавить какой-то невидимый дополнительный символ и не совпадать.
Если я напишу строку вручную, то это сработает.
Может кто-нибудь сказать мне, что я могу сделать со строкой answer.text
, чтобы она соответствовала делу, пожалуйста?
Комментарии:
1. Ты забыл о перерыве ?
2. Попробуйте скопировать текст из журнала отладки, также поместите журнал отладки в регистр по умолчанию, чтобы убедиться, что коммутатор даже запущен
Ответ №1:
Строки могут быть не равны, если конец первой строки не равен n. В этом случае вы можете попробовать проверить его, просто переведя его в массив символов или массив байтов. И, конечно, не забудьте написать перерыв в любом случае.
Комментарии:
1. Если в них отсутствует скрытый персонаж, как
translating it to char array or byte array
решить проблему? Персонажа все равно там не будет …
Ответ №2:
Действительно, строка была изменена путем добавления a "r"
в ее конце.
Решение, которое я использовал, состояло в том, чтобы просто сделать:
anser.text.replace("r", string.empty);
Это сработало как заклинание. Спасибо всем вам за помощь мне!