Как получить текст из поля Input?

Если можно по подробнее (смотрел тут ответы и ещё не понял).

На сцене есть объект инпут - PlayerNameInputField (создал ui->InputField). У него есть вложенный объект (создается по умолчанию), отвечающий за текст (шрифт, размер, цвет) Я его назвал PlayerNameInputFieldText.

Нужно по нажатию кнопки (на которой будет висеть скрипт с методом, проще говоря в методе), получить значение инпут поля.

Код ниже не работает

var gameObject = GameObject.Find("PlayerNameInputFieldText"); // Найдем объект.
var component = gameObject.GetComponent<Text>(); // Найдем его компонент (хоть так пиши, хоть PlayerNameInputFieldText)
Debug.Log("Текст в поле"+gameObject.Text);

Картинка с input и текстом в нем PS

Знаю на среднем уровне C#/PHP/HTML/Delphi/CSS/JS. Изучаю Unity вторую неделю. Испытываю некоторый шок, от невозможности использования стандартных приемов C# - инстанцирования (new), конструкторов которых нет у классов унаследованных от MonoBehaviour, инкапсуляции - когда открываем private поле SerializeField и т.д.

PPS

В интернете есть видео, где текст получают при изменении инпута - вешают отдельный скрипт на Update. Не считаю нормальным выполнять код на каждый апдейт т.к. нам надо получить значение 1 раз.


Ответы (1 шт):

Автор решения: Иван

Нужно было добавить неймспейс и далее обратиться к объекту и компоненту и его свойству.

using UnityEngine.UI.
//.........
var playerNameInputFieldText = GameObject.Find("PlayerNameInputFieldText"); 
var text = playerNameInputFieldText.GetComponent<Text>();
player.Name=text.text;
→ Ссылка