Как получить текст из поля Input?
Если можно по подробнее (смотрел тут ответы и ещё не понял).
На сцене есть объект инпут - PlayerNameInputField (создал ui->InputField). У него есть вложенный объект (создается по умолчанию), отвечающий за текст (шрифт, размер, цвет) Я его назвал PlayerNameInputFieldText.
Нужно по нажатию кнопки (на которой будет висеть скрипт с методом, проще говоря в методе), получить значение инпут поля.
Код ниже не работает
var gameObject = GameObject.Find("PlayerNameInputFieldText"); // Найдем объект.
var component = gameObject.GetComponent<Text>(); // Найдем его компонент (хоть так пиши, хоть PlayerNameInputFieldText)
Debug.Log("Текст в поле"+gameObject.Text);
Знаю на среднем уровне 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;
