Страница 1 из 1

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

СообщениеДобавлено: 12 апр 2017, 20:07
Valentinus
версия 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>();

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

СообщениеДобавлено: 12 апр 2017, 20:32
Paul Siberdt
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>();

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

СообщениеДобавлено: 13 апр 2017, 12:37
Valentinus
действительно, невнимательно справку прочел, положился на слово Parent.
*смайлик стыда*
кстати, GetComponentInChildren тоже сперва ищет у себя, а только потом у потомков.