Конвертация Tilemap в массив префабов

Как известно, в Unity встроен удобный инструмент для создания и редактирования Tilemap, при этом в рамках одной сетки, можно создать несколько Tilemap, на одном можно нарисовать проходимые участки карты, на другом непроходимые, например. Но, для создания проекта на тайлах, может понадобится еще одна вещь, размещение на клетках, вместо тайлов, префабов из таких же тайлов. Если таких префабв пара штук, то проблемы в этом конечно нет, однако, как быть если необходимо сотню префабов разместить на Tilemap, плюс, нужно учитывать возможность редактирования самой кары и соответственно этих отдельных префабов.

Для решения этой проблемы, мы предлагаем следующее решение. Логика в том, чтобы создать дополнительный Tilemap для карты проекта, и рисовать на нем тайлами те объекты, которые нужно заменить на префабы. А затем, сделать конвертацию данной Tilemap в префабы, где каждый тайл будет заменен, на основе его имени. То есть, мы считываем имена тайлов, находим одноименные префабы и меняем их местами, при этом заменяемые тайлы будут удалены с сетки Tilemap.

Условно "снимок" заменяемых тайлов, мы делаем в XML формате. Можно сразу заменить тайлы или сохранить снимок в файл. Два этих варианта сделаны для примера, для того, чтобы продемонстрировать как можно работать с Tilemap и считывать информацию о тайлах. Кроме того, вариант с XML может быть полезен, если надо изменить карту замены тайлов, просто подключив другой файл.

Итак, для начала работы создадим в проекте папку Resources, а в ней еще две: Maps - здесь будут храниться XML файлы; Prefab - здесь мы создаем префабы, с таким же именем как у заменяемых тайлов.

Теперь добавляем на сцену скрипт TilemapEditor.
Данный скрипт можно цеплять куда угодно, указываем в настройках необходимый Tilemap и имя для файла XML.

Скачать:
https://www.patreon.com/posts/konvertatsiia-v-23168278
Тестировалось на: Unity 2018.2.14
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Яндекс.Метрика