получить
Dropdown.GetComponent<Dropdown>()
Dropdown -> ссылка на элемент
выдает null, хотя в документации есть примеры что так и нужно получать, что я не так делаю?
Скорей всего нету компонента на ГО
Если вы берёте компонент у объекта, то у него должен быть этот компонент в составе. Но не в чайлде.
в каком смысле? я его вижу, он есть, его не может не быть
Покажи скрином код
И скрин объекта в инспекторе ещё
[SerializeField] private GameObject Dropdown; public void ButtonGive() { var r = Dropdown.GetComponent<Dropdown>().value; } выдает: NullReferenceException: Object reference not set to an instance of an object
Ну и где у объекта компонент дропдаун? Чё то я его не вижу. Указатель есть, а объекта нет)))
Вы его явно указали. Брат по гету уже не надо
я же говорю я его беру как gameObject и уже в коде получаю его, иначе он даже крепится ссылкой не хочет в самом gameObject ничего полезного нету
На самом обьекте есть этот компонент?
Да нет у него там ничего. Он ссылкой его к объекту прикрепил. А потом скриптом пытается взять из неоткуда
Если иначе он крепится нехочет значит этого скрипта нету там
Ну его тут нету
Здесь дропдаун это имя текстмешпро объекта. Надо брать по типу, а не по имени, если проблема в этом
тип поля GameObject изменить на TMP_Dropdown, убрать GetComponent и напрямую брать из поля
ну в чем и вопрос, а тип у него какой? https://docs.unity3d.com/ru/2018.4/ScriptReference/UI.Dropdown-value.html судя по документации я все правильно делаю
это не тот компонент
И брать ты его пытаешься с объекта, на котором его нет, судя по скринам
вроде получилось, имя смущает, какого хрена он TMP_? это вообще законно?
ты используешь TextMeshPro, у него свои компоненты, отдельные от стандартных юнитевских
вот сейчас вообще в шоке, я бы уверен что пользуюсь исключительно стандартными unity элементами, откуда они нестандартные взялись? может из за версии unity? 2022.1 я просто новичок, только изучаю его
TextMeshPro включен в стандартный пакет юнити, но создан другими разработчиками ЕМНИП
Если ты обращаешься к GameObject только за одним компонентом, лучше поле делать не для GameObject а сразу для компонента
Его нужно отдельно ставить
Он же включен в юнити. На 2021.3+ точно
TMP это плагин, который выкупили юнитеки и встроили в движок. Его разраб сейчас работает у них в компании. Обычные компоненты (не TMP) считаются устаревшими, их использовать не надо
они бы его ещё Garbage сразу назвали для верности )))
Обсуждают сегодня