Всем привет!
При разработке 2D игрушки на Unity столкнулся с такой проблемой: необходимо динамически создавать комплексный 2D объект (состоящий из нескольких спрайтов) и его позиционировать его относительно других объектов в runtime.
Очевидно, что для этого нам нужно знать размер объекта, а также его min/max по оси X и min/max по Y. Здесь предлагаю решение данного вопроса в виде готового скрипта-утилиты, а также еще одного скрипта "хелпера", позволяющего визуально оценить где объект начинается и где он заканчивается. Под объектом и подразумеваю GameObject с вложенными в него объектами-спрайтами (уровень вложенности любой).
Скрипт Utils.cs:
Скрипт-хелпер:
Как пользоваться:
1. Кидаем оба скрипта в ваши ассеты.
2. Создаем пустой GameObject
3. Закидываем туда спрайты (можно друг в друга)
4. Добавляем в созданный GameObject скрипт-хелпер.
5. Запускаем плеер и в окошке сцены смотрим размеры.
Min/Max считаются в мировых координатах.
Скрипт не учитывает поворот объекта :(.
Спасибо за внимание.
При разработке 2D игрушки на Unity столкнулся с такой проблемой: необходимо динамически создавать комплексный 2D объект (состоящий из нескольких спрайтов) и его позиционировать его относительно других объектов в runtime.
Очевидно, что для этого нам нужно знать размер объекта, а также его min/max по оси X и min/max по Y. Здесь предлагаю решение данного вопроса в виде готового скрипта-утилиты, а также еще одного скрипта "хелпера", позволяющего визуально оценить где объект начинается и где он заканчивается. Под объектом и подразумеваю GameObject с вложенными в него объектами-спрайтами (уровень вложенности любой).
Скрипт Utils.cs:
Скрипт-хелпер:
Как пользоваться:
1. Кидаем оба скрипта в ваши ассеты.
2. Создаем пустой GameObject
3. Закидываем туда спрайты (можно друг в друга)
4. Добавляем в созданный GameObject скрипт-хелпер.
5. Запускаем плеер и в окошке сцены смотрим размеры.
Min/Max считаются в мировых координатах.
Скрипт не учитывает поворот объекта :(.
Спасибо за внимание.
Комментариев нет:
Отправить комментарий