глюк при поиске компонента у родителя (GetComponentInParent)

Ошибки и баги Unity3D

глюк при поиске компонента у родителя (GetComponentInParent)

Сообщение Valentinus 12 апр 2017, 20:07

версия 5.5.
имею пустой GameObject, к нему присоединен UI Text у которого есть скрипт:

RectTransform txt_rt = gameObject.GetComponent<RectTransform>();
RectTransform rt = gameObject.GetComponentInParent<RectTransform>();

если посмотреть rt.name и txt_rt.name то оказывается что они оба указывают на Text. ;;)

PS целый день измучился, пытаясь изменить размер родительского RT, только вечером догадался проверить по name :(

PPS чтобы получить родительский RT надо: RectTransform rt = txt_rt.parent.GetComponentInParent<RectTransform>();
другое мое творчество: samlib.ru/u/us_w/
Аватара пользователя
Valentinus
Старожил
 
Сообщения: 889
Зарегистрирован: 24 мар 2017, 18:33

Re: глюк при поиске компонента у родителя (GetComponentInParent)

Сообщение Paul Siberdt 12 апр 2017, 20:32

GameObject.GetComponentInParent Returns the component of Type type in the GameObject or any of its parents.

GameObject.GetComponentInParent сначала ищет компонент на себе и потому не успевает заглянуть в паренты. Поэтому имена совпадали.
Он вам вообще не нужен. Достаточно сделать RectTransform rt = txt_rt.parent.GetComponent<RectTransform>();
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: глюк при поиске компонента у родителя (GetComponentInParent)

Сообщение Valentinus 13 апр 2017, 12:37

действительно, невнимательно справку прочел, положился на слово Parent.
*смайлик стыда*
кстати, GetComponentInChildren тоже сперва ищет у себя, а только потом у потомков.
другое мое творчество: samlib.ru/u/us_w/
Аватара пользователя
Valentinus
Старожил
 
Сообщения: 889
Зарегистрирован: 24 мар 2017, 18:33


Вернуться в Глюки

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3