Как я уже писал негде в комментариях - потихоньку буду запиливать на XGM инструменты из своего проекта.
Однако хотел бы отметить что данный инструмент делался исключительно в личных целях и очень не советую идти против системы, используя генератор не по назначению - наткнетесь на баги - виноваты сами.
Ну а моей обязанностью будет проинструктировать, как этим правильно пользоваться.
Быстрый старт
Для начала скачайте архив, приложенный здесь. Откройте и закиньте содержимое в папку Assets вашего проекта.
В вашем проекте после рекомпила появится пункт меню "GameObject/Create Advanced/Wall Constructor".
Нажмите его, и приступим.
На сцене создался новый игровой объект "Wall". В инспекторе у этого объекта есть несколько свойств, которые отвечают за параметры стены в целом. Настройте их по своему усмотрению.
В принципе, как только вы поставили объект у вас уже почти все заполнено для тестирования. Нужно только самому выбрать материалы для стены.
После того, как вы все установили нажмите кнопку "Начать редактирование".
Обратите внимание - внутри нашего объекта "Wall" есть еще два объекта, пронумерованные как 1 и 2.
Выберите объект 2 - он считается концом стены.
Подвиньте его куда захотите. Собственно вот наша стена и растянулась.
При выборе этой второй точки - в инспекторе появляется кнопка "Продолжить стену". Нажмите на нее и создастся еще одна точка.
Теперь переключитесь обратно на точку "2". Данная точка теперь не находится с краю и может быть использована как центр кривой. Нажмите кнопку "Сделать центром кривой" в инспекторе. После нажатия ваша стена преобразится в кривую.
Теперь вернитесь на точку 3.
Предположим, что вам нужно изменить высоту стены в данной точке.
Подкрутите немного ползунок "Смещение высоты" вверх или вниз и стена деформируется.
((галерея
))
После того как вы закончили генерацию меша, нажмите обратно на объект Wall и нажмите "Закончить редактирование".
Теперь нажмите "Удалить компонент". Как вы видите все вложенные объекты были удалены, появилось два компонента - MeshRenderer и MeshFilter, а наш компонент был удален.
Инструкция - подробней и по порядку
Новый объект создается через пункт меню "GameObject/Create Advanced/Wall Constructor".
Точки
Разные точки в генераторе имеют разную специфику. Порядок точек точно такой же как отображается в иерархии.
Итак:
- первая точка - не может быть преобразована - вы можете только двигать ее
- из последней точки вы можете создавать "продолжение"
- промежуточные точки вы можете преобразовать в точки кривых, но две точки кривых не могут идти подряд
Настоятельно не советую изменять имена точек, так как имя последней точки переводится в число, для того чтобы новая точка была следующей в иерархии.
Точки имеют поле "Высота смещения", которое влияет на то, насколько смещается высота относительно общей величины, указываемой в самом компоненте-генераторе.
Генератор
Сам генератор имеет следующие поля:
- Высота - влияет на высоту стены, что логично. Эта величина складывается со смещением у точки и образуется финальная высота. Не советую выставлять поля так, чтобы в сумме они давали минус.
- Толщина
-Размер развертки - если текстуру нужно пропорционально увеличить в размере
- Материал сбоку
- Материал сверху - верхняя часть меша немного отличается по рисунку со всей остальной частью стены, потому тут текстура указывается отдельно
- Сглаживание кривых - указывает через сколько Unity-единиц в кривых должен создаваться новый полигон. Очень не рекомендую слишком уменьшать этот параметр - вызовет это дикие лаги. Да и в сути такая точность не нужна.
Перед тем как изменять точки включите генератор кнопкой "Начать редактирование". Когда вы заканчиваете с редактированием ОБЯЗАТЕЛЬНО отключите редактирование по кнопке - каждый кадр меш генерируется заново, пока вы не сделаете этого. Данная фича была сделана исключительно для удобства, но доставляет вот такой казус - не стоит про нее забывать и отключать когда вы ей не пользуетесь.
Если при сохранении вашей локации на ней остается значок звездочки после имени - посмотрите внимательно, возможно вы забыли выключить генерацию.
Когда вы окончательно сгенерировали меш - удалите компонент-генератор по соответствующей кнопке. ОБЯЗАТЕЛЬНО удаляйте его кнопкой, а не вручную - он автоматически делает дополнительную работу по удалению дочерних объектов и отображению скрытых компонентов.
Смотрите также:
Комментарии
вах! это как раз то что мне сейчас надо! спасибо)
отличная статья)
Этот скриптик можно адаптировать под модульное строительство? Окошечки добавить там всякие, использовать как конструктор зданий, скажем?)
RSQR, не советовал бы, так как развертка рассчитана именно на стены. У зданий она будет выглядеть крайне криво между этажами, в дверных проемах и окошках.
Но реально написать такой инструмент самому. В его создании нет ничего сложного, достаточно ознакомиться с процедурной генерацией мешей и придумать как вам будет удобней эти здания редактировать - как вы будете добавлять окошки, дверные проемы, новые этажи у зданий. Если волнует вопрос, можно ли это взять за базис - да можно. Но переделать придется довольно много.
Зато если оставить от скриптов только генерацию верхней части стены и сместить ее вниз - ее можно использовать как инструмент для создания дорог, если вас это утешит
Бтв, картинка с превью, в ресурс фул не добавлял :)
RSQR, не советовал бы, так как развертка рассчитана именно на стены. У зданий она будет выглядеть крайне криво между этажами, в дверных проемах и окошках.
Но реально написать такой инструмент самому. В его создании нет ничего сложного, достаточно ознакомиться с процедурной генерацией мешей и придумать как вам будет удобней эти здания редактировать - как вы будете добавлять окошки, дверные проемы, новые этажи у зданий. Если волнует вопрос, можно ли это взять за базис - да можно. Но переделать придется довольно много.
Зато если оставить от скриптов только генерацию верхней части стены и сместить ее вниз - ее можно использовать как инструмент для создания дорог, если вас это утешит
Ясно. Это всё, что я хотел узнать)
тож златогоре было?
velmir, угадал по скрину :) Да, делаем продолжение Златогорья.
А почему "тоже"? Кроме нас никто вроде этот проект не делает. Если о ком и слышали, вероятно это мы и были.
Extravert, блин, а я подумал, Арканум =/
P. s. Велмир, видимо, написал «тож» в смысле «то ж», а не в смысле «тоже».По идее, если поковыряться в коде, можно заточить этот ассет под создание рельефной дороги для игр типа Trials.
щас только нашел темку, круть! Много чего можно из этого развить
CollectableItemData.cs
[CreateMenuItem(fileName = "newItem", menuName = "Data/Items/Collectable", order = 51]