Ситуация такая: мне нужно при выделении игрового объекта показывать на экране его элементы интерфейса. Например - выделяем воина и на экране показывается его характеристики. Игровые объекты добавляются на сцену динамически по решению игрока, так что закрепить связь между игровым объектом и элементом интерфейса до добавления этого самого объекта на сцену не получится.
a) Самый изящный вариант решения, как мне кажется, был такой: я создавал в префабе игрового объекта canvas с необходимыми элементами и включал его при выделении игрового объекта.
Проблема оказалась в том, что, если canvas является дочерним объектом на сцене, а позиция его родителя не (0,0,0), то canvas (при включенном screen space - overlay режиме рендера) "вылезает" за пределы экрана.
b) Второй вариант решения есть такой: все элементы интерфейса я вешаю на обычный canvas без родителя, объединяю их в логические группы, определяющие их отношение к конкретному игровому объекту. Вешаю на эти группы уникальные тэги, и при добавлении игрового объекта на сцену в start() произвожу поиск по тэгу и получаю единовременно ссылку на интересующий меня элемент интерфейса. Мне не хочется так делать, потому что функция поиска по тэгу или классу очень нагрузочная, даже при условии использования её один раз при start()
Может, вы подскажите какой-нибудь другой вариант или как изменить 1ый, чтобы отображалось всё удовлетворительно.