четверг, 10 сентября 2015 г.

Размер объекта в Unity3d (2D)

Всем привет!

При разработке 2D игрушки на Unity столкнулся с такой проблемой: необходимо динамически создавать комплексный 2D объект (состоящий из нескольких спрайтов) и его позиционировать его относительно других объектов в runtime.
Очевидно, что для этого нам нужно знать размер объекта, а также его min/max по оси X и min/max по Y. Здесь предлагаю решение данного вопроса в виде готового скрипта-утилиты, а также еще одного скрипта "хелпера", позволяющего визуально оценить где объект начинается и где он заканчивается. Под объектом и подразумеваю GameObject с вложенными в него объектами-спрайтами (уровень вложенности любой).

Скрипт Utils.cs:
Скрипт-хелпер:
Как пользоваться:
1. Кидаем оба скрипта в ваши ассеты.
2. Создаем пустой GameObject
3. Закидываем туда спрайты (можно друг в друга)
4. Добавляем в созданный GameObject скрипт-хелпер.
5. Запускаем плеер и в окошке сцены смотрим размеры.

Min/Max считаются в мировых координатах.

Скрипт не учитывает поворот объекта :(.


Спасибо за внимание.