Получение корневого родителя элемента

216
04 марта 2018, 21:38

Существует такая иерархия

  • canvas_main

    • canvas_second

      • Image
    • Image

На обоих Image висит один и тот же скрипт, как из него получить canvas_main?

Очевидно что просто transform.parent.gameObject не подходит в силу "разноуровности" элементов.

Answer 1

Очевидно, наимение ресурсоёмкий способ это ссылка прямо на объект.

public Transform MainParent;

Если вам этот способ не нравится, вы можете найти по тегу или названию.

Answer 2

Все GameObject обязаны иметь компонент Transform, а у всех классов наследников MonoBehaivior есть метод GetComponentsInParent(). Который вернёт все компоненты данного типа, которые найдёт идя вверх по списку.

Могу, конечно, ошибиться, но этот метод при вызове .GetComponentsInParent() вернёт вам массив из трансформов, в котором последним элементом будет самый верхний трансформ. Как следствие из него вы можете получить объект через .gameObject

Answer 3

Если над canvas_main нет других объектов, то можно же просто transform.root использовать

READ ALSO
Как завершить сессию Windows 8.1 и зайти под другим пользователем в .NET?

Как завершить сессию Windows 8.1 и зайти под другим пользователем в .NET?

Имеется Windows 81 необходимо чтобы программа завершила сеанс под тем пользователем, под которым она находится и зашла в систему под другим, чтобы...

216
Как получить подстроку из строки до определенного символа? - C#

Как получить подстроку из строки до определенного символа? - C#

Допустим, у меня есть строка str = "слово1^слово2^слово3^

234
Загрузка данных при связи Многие ко многим

Загрузка данных при связи Многие ко многим

ЗдравствуйтеВ базе данных есть 2 таблицы

201