Выберите вариант не работает с текстовым игровым объектом в Unity, сравнивая строки

#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);
 

Это сработало как заклинание. Спасибо всем вам за помощь мне!