Unity3d | строка из Input field TMP (string) библиотеке не совпадает с текстом
По части кода я не понимаю, почему не работает совпадение с текстом из InputField (TextMeshPRO), к примеру "Hello"
TextMeshProUGUI textInput = transform.Find("Description/InputField (TMP)/Text Area/Text").GetComponent<TextMeshProUGUI>();
string str = textInput.text;
if (str.Equals("Hello"))
{
Action(str);
DestroyMe();
}
else
{
Debug.Log($"str = {str.GetHashCode()}, and Hello = {"Hello".GetHashCode()}");
}
При вводе "Hello" и запуске скрипта у меня не срабатывает первое условие (хотя должно), и появляется в консоли это (для проверки на совпадение использовал GetHashCode()): str = 652893137, and Hello = -327378614. Возможно опять новый TextMeshPRO что-то не то делает (уже столько багов у этого скрипта), но посоветуйте пожалуйста (не нужно просто писать: "Не используй функции TextMeshPRO"), что с этим можно сделать?
Заранее спасибо
UPD: Я заметил, что он даже если в поле ввода ничего не ввести и сделать проверку на if (str.Length == 0), он её обойдёт тоже!
Ответы (1 шт):
Следует вводить не TextMeshProUGUI, который просто вводит символы, а писать TMP_Text
TMP_Text textInput = transform.Find("Description/InputField (TMP)/Text Area/Text").GetComponent<TMP_Text>();
string str = textInput.text;
if (str.Equals("Hello"))
{
Action(str);
DestroyMe();
}
else
{
Debug.Log($"str = {str.GetHashCode()}, and Hello = {"Hello".GetHashCode()}");
}