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 шт):

Автор решения: Steve Dekart

Следует вводить не 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()}");
        }
→ Ссылка