Как сделать карту в юнити

Ландшафт в Unity3D. Часть 1. Создание террейна в Unity 3D и экспорт карты высот из Unity 3D

Как сделать карту в юнити

В данной статье-уроке по созданию террейна в Unity3D рассказывается о том, как создать ландшафт в Unity3D. В уроке раскрываются первые секреты и особенности ландшафта в Unity 3D, а также рассказывается о том, как экспортировать карту высот созданного в Unity3D ландшафта с целью ее дальнейшего использования для редактирования в графических редакторах, например, GIMP или Photoshop.

Создаем ландшафт в Unity3D

Для того чтобы создать заготовку для нового террейна в Unity3D выберите в главном меню вкладку “Game Object”, в которой в свою очередь выберите вкладку “3D Object”, а в ней – “Terrain”. В окне сцены “Scene” появится плоскость, похожая на стандартный примитив “Plane” или “Quad”, расположенные все в той же вкладке “3D Object”.

Как сделать карту в юнити На рисунке показано меню создания ландшафта террейна в Unity3D.

Хотя только что созданная плоскость террейна и имеет компонент “Transform”, как любые другие объекты в Unity 3D, данный компонент позволяет лишь менять расположение террейна в пространстве, абсолютно игнорируя изменения значений для масштаба “Scale” и поворота “Rotation” террейна (выделено красным на рисунке выше).

Но значение для Rotation можно изменить, если его вращать через Гизмо. Конечно существуют инструменты позволяющие повернуть ландшафт в Unity3D, точнее будет сказать, не террейн, а карту высот террейна. Одним из таких инструментов является ассет с Unity Asset Store Terrain Rotator.

Как сделать карту в юнити На рисунке показан ассет Terrain Rotator, позволяющий повернуть карту высот ландшафта в Unity 3D, по сути, позволяющий развернуть террейн Unity 3D.

Особенности и секреты террейна/ландшафта в Unity3D

Вместо того чтобы задавать размер террейна через масштаб “Scale” в компоненте преобразования трансформации “Transform” (как это работает, например, для 3D моделей, импортированных в Unity3D), необходимо использовать параметры ширины террейна (по оси Z в глобальных/мировых единицах) и длины/протяженности террейна (по оси X в глобальных/мировых единицах) – “Terrain Width” и “Terrain Length”, задаваемые в настройках/установках террейна “Terrain Settings” (выделено на рисунке выше зеленым цветом). Особенностью созданной заготовки-плоскости для террейна является то, что она может быть изменена имеющимися в Unity3D встроенными инструментами создания террейна, расположенными в компоненте “Terrain” в окне инспектора “Inspector”, такими как понижение/повышение террейна ”Raise/Lower Terrain”, выравнивание террейна до заданной высоты “Paint Height”, сглаживание террейна “Smooth Height”, раскрашивание ландшафта текстурой “Paint Texture”, размещение деревьев на террейне “Place Trees”, размещения травы и мешей “Paint Detail”. Более подробно данные инструменты для работы с террейном в Unity3D описаны в разделе Ландшафтный движок в официальном руководстве Unity3D.
Для данной статьи нам подойдет ландшафт в Unity3D размером в 100 на 100 единиц/units, которые в Unity можно условно приравнять и одному метру, и одному миллиметру (например, для создания макромира в Unity 3D) и нескольким тысячам километров (для создания стратегий в бесконечном космосе в Unity 3D). Остальные настройки (выделены зеленым на рисунке выше в правом нижнем углу) я выставил также не слишком высокими (выделены в нижней правой части рисунка выше зеленым цветом). Обратите внимание, что размер/разрешение карты высот задается не в стандартных размерах 256 (x256), 512 (x 512), 1024 (x 1024), 2048 (x 2048), а к данным значениям добавляется единица, но об этом несколько позже.
Забавности с террейном на этом не заканчиваются: попробуйте повернуть террейн вокруг любой из его осей. Для того чтобы повернуть 3D объект, выберите его (в данном случае террейн), щелкнув по нему Левой Кнопкой Мыши, и перейдите в режим поворота/вращения объекта, нажав клавишу ‘E’, после чего, чтобы повернуть объект вокруг оси Z, щелкните Левой Кнопкой Мыши на синей окружности гизмо, которая окрасится в желтый цвет и удерживая Левую Кнопку Мыши, переместите мышь. За поворот террейна (да и любого другого 3D объекта в окне сцены Unity 3D) вокруг оси Y отвечает зеленая окружность, а вокруг X — красная.

Как сделать карту в юнити На рисунке показан “повернутый” ландшафт в Unity3D, который на самом деле не развернулся, а лишь поменял свое местоположение.

Обратите внимание, что ландшафт в Unity3D не поворачивается вокруг своей оси, а поворачивается вокруг некоей точки, как если бы его pivot point лежал не в центре самого террейна, причем ориентация террейна при повороте сохраняется, т.е. если левый край террейна смотрел на сервер, а правый – на юг, то данная ориентация краев террейна не изменится после процедуры вращения террейна. После того как вы «повернете» ландшафт в Unity3D, в результате этого «поворота» изменится лишь его положение в 3D пространстве. В зависимости от того, вокруг какой оси вы поворачиваете террейн, зависит то, по каким осям происходит смещение террейна. После того как вы повернете ландшафт в Unity3D, отпустите Левую Кнопку Мыши и поверните террейн еще раз вокруг той же оси. Попробуйте вернуть его в прежнее положение! Не получается… Получается, что как только вы отпускаете Левую Кнопку Мыши, опорная точка pivot point (как Pivot Center for Rotation/Scaling в Blender) террейна автоматически перемещается в новую точку.
Такое поведение террейна, не как обычного 3D объекта, обусловлено условиями, предъявляемыми к оптимизации террейна в Unity3D. Отсутствие поворота – и плюс и минус одновременно. Минус – вы не можете вращать террейн, но при больших локациях, открытых мирах и огромных уровнях вращение террейна просто убило бы производительность и снизило бы FPS до нуля. Для небольших уровней, например, в виде отдельных островков, отсутствие возможности повернуть террейн может считаться минусом, но при данных начальных условиях всегда можно использовать меш взамен террейна, поскольку в данном случае производительность (даже без поворота террейна) может встать на сторону использования именно мешей, а не террейнов.

Модифицируем/изменяем террейн в Unity 3D

Как сделать карту в юнити На рисунке показаны инструменты компоненты «Transform», при помощи которых можно создать ландшафт в Unity3D.

Кроме всего перечисленного Unity 3D позволяет, как импортировать, так и экспортировать созданный террейн в другое приложение для его редактирования. Точнее будет сказать, экспортируется не сам террейн, а карта высот, ведь именно карты высот мы рисуем, когда водим различными кистями по поверхности террейна. Приложениями, в которые может быть импортирована карта высот, созданная в Unity 3D, могут быть и 3D редакторы, например, Blender 3D, и специализированные приложения для создания террейнов/ландшафтов, например, World Machine 2 (поддерживающее множество известных инструментов для построения качественного ландшафта).

Как сделать карту в юнити На рисунке показан один из ландшафтов, созданных в редакторе ландшафтов World Machine.

Приложение World Machine «выросло» из GeoControl, о чем извещает страница, на которой ранее располагался сайт GeoControl 2.

Как сделать карту в юнити На рисунке показана страница перенаправления на один из сайтов, на котором можно познакомиться и купить генератор ландшафтов World Machine 2.

Экспорт террейна в Unity3D через экспорт карты высот ландшафта

Давайте экспортируем карту высот, по которой создается ландшафт в Unity3D. Опция экспорта карты высот террейна в формате RAW доступна в меню установок террейна “Terrain Settings” (иконка с шестеренкой).

Как сделать карту в юнити На рисунке показан процесс экспорта карты высот из Unity3D.

В окне Инспектора в компоненте “Terrain” в разделе карты высот “Heightmap” выберите кнопку “Export RAW”, чтобы открыть меню экспорта карты высот (на базе которой и построен ландшафт в Unity3D). В данном меню вам предложат выбрать параметры для формата RAW экспортируемого изображения. Выберите 16 bit для параметра Depth, чтобы сохранить карту высот в 16-битном формате (об этом мы поговорим в одном из следующих уроков по созданию ландшафта в Unity3D); для Byte Order – Windows, и НЕ ставьте флаг/галочку напротив параметра Flip Vertically, отвечающем за переворот/зеркальное отображение экспортируемого изображения по вертикали. Осталось лишь кликнуть на кнопке “Export”, открыть окно стандартного сохранения файлов, в котором вам останется лишь выбрать папку, в которую вы хотите сохранить карту высот, и имя файла карты высот, после чего – нажать кнопку “Ok”.

Автор: Максим «MANMANA» Голдобин

Источник

Введение в новую систему тайловых карт Unity

Как сделать карту в юнити

Знакомство с систему двухмерных тайловых карт Unity даёт отличную возможность экономии времени инди-разработчиков и игровых студий на прототипирование и создание качественных 2D-игр.

Без этой системы можно потратить дни, если не недели на написание собственной системы тайловых карт или переработку чужой. И это только программирование, а как насчёт редактора тайловых карт?

Новая система бесплатна и встроена непосредственно в редактор Unity. Она предоставляет множество возможностей, которые мы рассмотрим в этом туториале.

В этой статье мы воспользуемся простой тайловой 2D-игрой, чтобы узнать следующее:

Примечание: в этом туториале подразумевается, что вы хорошо умеете работать в редакторе Unity. Если вы считаете, что недостаточно в нём освоились, то в туториале Introduction to Unity есть всё необходимое для изучения этого туториала. Кроме того, вам необходима версия Unity 2017.3 или выше.

Что такое тайловая игра?

Тайловая 2D-игра — это любая игра, в которой уровни или игровые области состоят из множества небольших плиток (тайлов), вместе образующих сетку тайлов. Иногда различия между тайлами могут быть очевидными, а иногда они кажутся игрокам сплошными и неразличимыми.

Коллекция имеющихся в игре тайлов называется «тайлсетом», и каждый тайл обычно является спрайтом, частью листа спрайтов (spritesheet). Если вы хотите лучше разобраться с листами спрайтов, то у нас есть туториал, в котором описываются листы спрайтов Unity.

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

Возможно, вам уже известны две самые популярные игры, в которых используется система тайловых карт: Starbound и Terraria.

Как сделать карту в юнити

Как сделать карту в юнити

Приступаем к работе

Запустите редактор Unity и загрузите проект Rayzor-starter из распакованных материалов проекта.

Вот, с чем вы будете работать в этом проекте:

Как сделать карту в юнити

Создание игры

Откройте сцену Game из папки Scenes.

Нажмите на кнопку Play в редакторе, чтобы запустить игру. В окне Game перемещайте героя клавишами WASD или «стрелками».

Как сделать карту в юнити

Пока герой бродит по кажущемуся бесконечным фону камеры с цветом #00000, потерявшись в пустоте.

Чтобы исправить это, нам потребуются инструменты 2D-тайлов для построения интересных уровней и механик игры.

Знакомимся с палитрой тайлов

Как сделать карту в юнити

Это окно станет вашим лучшим другом при работе над тайловыми играми в Unity.

Как сделать карту в юнити

Нажмите на Create и выберите сохранение новой палитры в папке Assets\Palettes проекта. В ней создайте новую папку RoguelikeCave.

Теперь структура папок вашего проекта должна выглядеть так:

Как сделать карту в юнити

В окне редактора Tile palette должна быть выбрана RoguelikeCave; на этом этапе у нас всё ещё нет никаких тайлов:

Как сделать карту в юнити

Как художник может творить свои шедевры, если у него нет материалов?

Не закрывая окно Tile Palette, выберите папку проекта Sprites/roguelike-cave-pack и разверните ассет roguelikeDungeon transparent.png. Затем выделите все спрайты в этом листе спрайтов: выберите первый спрайт, зажмите shift и выберите последний спрайт.

Перетащите все выбранные спрайты в окно Tile Palette RoguelikeCave:

Как сделать карту в юнити

Перетащив спрайты в окно Tile Palette, выберите в Unity место для хранения ассетов.

Создайте в Assets/Palettes/RoguelikeCave новую папку Tiles и выберите эту папку в качестве места хранения:

Как сделать карту в юнити

Unity сгенерирует тайловый ассет для каждого спрайта, добавленного из листа спрайтов. Дождитесь завершения процесса, затем увеличьте размер окна Tile Palette и полюбуйтесь на ровные ряды красивых новых тайлов, расположившихся в палитре RoguelikeCave:

Как сделать карту в юнити

Повторите описанный выше процесс для создания палитры тайлов с помощью окна Tile Palette, но на этот раз назовите новую палитру RoguelikeCustom.

Поместите новую палитру в новую папку. Назовите папку RoguelikeCustom и переместите её в папку Assets/Palettes проекта.

На этот раз, воспользовавшись описанным выше процессом, используйте спрайты из листа Assets/Sprites/roguelike-custom/roguelike-normal-cutdown-sheet.png для заполнения тайлами новой палитры. Создайте внутри папки палитры RoguelikeCustom папку Tiles и переместите ассеты тайлов туда:

Как сделать карту в юнити

Порадуйтесь за себя, теперь вам известна магия создания тайловой палитры!

Как сделать карту в юнити

Создание сетки карты тайлов

Откройте меню GameObject в верхней части редактора Unity (или панель меню Unity, если вы работаете под MacOS), нажмите на 2D Object, а затем Tilemap, чтобы создать новую сетку Tilemap:

Как сделать карту в юнити

Вы должны увидеть, что в иерархию сцены добавился новый GameObject Grid. Разверните его и выберите встроенный GameObject Tilemap.

Воспринимайте этот объект Tilemap как слой (возможно, один из многих) вашей игры. Можно добавить новые объекты для создания дополнительных слоёв Tilemap.

В инспекторе вы увидите два компонента, которые Unity автоматически добавила к этому GameObject:

Как сделать карту в юнити

Использование различных инструментов рисования палитры тайлов

Переключитесь в редакторе на режим Scene.

Не закрывая окно Tile Palette, выберите палитру RoguelikeCave, а затем выберите инструмент brush (или нажмите B). Выберите тайл песка, как показано ниже:

Как сделать карту в юнити

В окне Scene переместите курсор на сетку рядом с игроком. Кисть с тайлом песка будет привязываться к сетке.

Зажав и удерживая левую клавишу мыши, нарисуйте вокруг игрока прямоугольную область. Она будет отрисована на слое Tilemap BaseLayer:

Как сделать карту в юнити

Рисование больших областей может оказаться монотонным занятием, поэтому существует кисть Filled Box, которую можно использовать для закрашивания крупных площадей. В окне Tile Palette нажмите на квадратный значок кисти (или нажмите U).

Вернитесь в редактор и нарисуйте вокруг игрока прямоугольник ещё большего размера, нажав и удерживая левую клавишу мыши, перетаскивая курсор из верхнего левого в нижний праый угол:

Как сделать карту в юнити

Хотя мы добавили в игру немного цвета, это песчаное подземелье выглядит уныло. Настало время добавить немного деталей!

Как сделать карту в юнити

В окне Tile Palette переключите Active Tilemap на слой DungeonFloorDecoration:

Как сделать карту в юнити

Выберите инструмент brush (B), затем нарисуйте в окне Scene разбросанные на карте объекты:

Как сделать карту в юнити

Отключите, а затем снова включите в иерархии GameObject DungeonFloorDecoration, чтобы увидеть, как отрисовка на активном Tilemap изменяет слой DungeonFloorDecoration, а все отрисованные тайлы попадают на этот новый слой:

Как сделать карту в юнити

Переключите Active Tilemap в окне Tile Palette на Collideable. Выберите инструмент brush (B), а затем нарисуйте следующие тайлы, чтобы построить вокруг игровой области стену. Выделенные красным зоны на изображении ниже — это новые части, которые нужно добавить:

Как сделать карту в юнити

Посмотрите на показанный ниже скриншот окна Tile Palette, чтобы разобраться, где найти тайлы, необходимые для постройки стены. Не забывайте, что можно использовать сочетания CTRL-Z или CMD-Z для отмены действия или стирать ошибки с помощью текущей кисти (удерживая Shift):

Как сделать карту в юнити

Запустите игру в редакторе и попытайтесь пройти сквозь стену:

Как сделать карту в юнити

Вы ведь не этого ожидали?

Проблема в том, что мы просто нарисовали стандартные тайлы и пока не применяли к слою Tilemap волшебную физику Unity.

Выберите GameObject Collideable и добавьте новый компонент, нажав кнопку Add Component в окне Inspector; в поле поиска введите Tilemap Collider 2D:

Как сделать карту в юнити

Этот компонент был создан специально для тайловых 2D-игр на Unity. Он просто применяет форму физического коллайдера ко всем тайлам слоя, к которому он был добавлен, не выполняя никакой другой работы.

Снова запустите игру и попробуйте пройти сквозь стену. Доступ запрещён!

Как сделать карту в юнити

Примечание: иногда при движении камеры можно заметить между некоторыми тайлами небольшие чёрные линии. Похоже, что это проблема движения камеры в проектах с системой 2D Tilemap Unity. От неё можно почти полностью избавиться, отключив Anti-Aliasing в параметрах графики. Однако даже если это сделать в проекте-заготовке, эффект всё равно слегка заметен. Решением этой проблемы может стать добавление собственного скрипта движения камеры с пиксельным смещением. Хорошее обсуждение этой проблемы можно найти здесь.

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

Как сделать карту в юнити

Вокруг каждого тайла есть коллайдер. Средним секциям стен не нужны эти дополнительные коллайдеры.

Выбрав GameObject Collideable, добавьте к нему компонент Composite Collider 2D. Это также автоматически добавит RigidBody2D.

Задайте параметру BodyType RigidBody2D значение Static, а затем поставьте флажок Used by Composite в компоненте Tilemap Collider 2D:

Как сделать карту в юнити

После этого вы заметите, что эти ненужные квадратные коллайдеры посередине стен исчезнут.

Завершите создание стен, достроив их вверх и замкнув наверху, высотой примерно в 16 тайлов. Не забывайте. что в качестве Active Tilemap окна Tile Palette должен быть выбран Collideable:

Как сделать карту в юнити

Участок подземелья не будет представлять никакой сложности для нашего героя без препятствий. Теперь мы начнём работу над созданием комнаты смерти, дополненной красивыми древними мраморными коридорами. После преодоления всех этих препятствий игрока ждёт награда — гора золота.

Для отрисовки этих коридоров мы воспользуемся специальной тайловой кистью Rule Tile. Как вы видели в начале туториала, в проект уже добавлены дополнительные тайловые скрипты из Github-репозитория Unity 2D Extras. Одним из них является Rule Tile.

Rule Tile позволяет нам задавать правила о том, какие тайлы нужно отрисовывать в зависимости от соседних располагаемых нами тайлов.

Как сделать карту в юнити

Как сделать карту в юнити

Воспользовавшись инструментом box fill brush (B) в окне Tile Palette и выбрав слой Tilemap BaseLayer, нарисуйте прямую секцию мраморной стены. Нужно, чтобы она закрывала всё пока свободное пространство пола.

Можно заметить, что когда мы будем это делать, слой будет закрывать тайлы стен с колладерами, потому что пока не задан порядок слоёв. Это легко исправить, выбрав GameObject Collideable и изменив Order in Layer компонента Tilemap Renderer на более высокое значение (достаточно будет 5):

Как сделать карту в юнити

Вернитесь в папку Prefabs проекта, откройте окно Tile и выберите палитру RoguelikeCave, а затем перетащите MarbleFloorRuleTile в пустое место на палитре:

Как сделать карту в юнити

Воспользуйтесь box fill brush и нарисуйте в комнате несколько секций мраморного пола:

Как сделать карту в юнити

Заметьте, что настроенный тайл правил, полностью окружённый со всех углов и граней, становится украшенным тайлом (спрайтом, выбранным в редакторе Tiling Rules).

Это ловушка!

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

Создайте в иерархии новый пустой GameObject и назовите его ShootingTrap. Создайте в ShootingTrap пустой дочерний GameObject. Назовите его Sprite:

Как сделать карту в юнити

Выберите Sprite и добавьте к нему компонент Sprite Renderer. Задайте Sorting Layer значение Player, а Order in Layer значение 1, чтобы он рендерился поверх остальных слоёв. Выберите поле Sprite, а в качестве спрайта поставьте roguelikeDungeon_transparent_180.

Теперь поверните Transform объекта Sprite на -90 по оси Z:

Как сделать карту в юнити

Далее вернитесь к GameObject ShootingTrap и добавьте с помощью инспектора новый компонент. В поле поиска найдите Shooting Trap и прикрепите этот скрипт.

Этот скрипт добавлен в скачанные вами файлы проекта; по сути, он каждые две секунды запускает корутину, создающую экземпляр префаба вращающегося лезвия пилы (или любого другого префаба) в текущей позиции ловушки.

Задайте параметру Item to Shoot Prefab компонента Shooting Trap значение Projectile (префаб находится в /Assets/Prefabs):

Как сделать карту в юнити

Снова запустите игру в редакторе и воспользуйтесь режимом Scene, чтобы найти ловушку. Она работает!

Как сделать карту в юнити

Перетащите копию ShootingTrap из иерархии в папку /Assets/Prefabs проекта, чтобы создать префаб. Удалите ShootingTrap из иерархии.

Мы используем ещё один скрипт тайловой кисти под названием PrefabBrush для создания кисти, способной рисовать префабы на слоях Tilemap.

Воспользуйтесь инспектором, чтобы задать параметру Prefabs Size PrefabBrush значение 1, а параметру Element 0 — значение ShootingTrap.

Как сделать карту в юнити

Создайте в Grid новый слой Tilemap под названием Traps и откройте окно Tile Palette.

Выберите обычную тайловую кисть (B) и воспользуйтесь раскрывающимся меню в нижней части окна Tile Palette для выбора PrefabBrush. Выберите в качестве слоя Active Tilemap Traps и используйте окно Scene для отрисовки нескольких префабов ловушек вдоль левой границы комнаты.

Как сделать карту в юнити

Разверните в иерархии GameObject Traps и поэкспериментируйте со значением Shoot Start Delay для каждого value on each Gameobject ShootingTrap с помощью скрипта Shooting Trap в инспекторе. Добавляйте к значению каждой ловушки по 0.25, т.е.:

Как сделать карту в юнити

Конечная цель

Цель этого мини-подземелья заключается в получении груды золота. Слава и богатство ждут тех, кто доберётся до неё, избежав смертельно опасных летающих лезвий.

Создайте в GameObject Grid новый слой Tilemap под названием Goal. Выберите Goal и измените значение Tilemap Renderer Order in Layer на 2:

Как сделать карту в юнити

Не закрывая окно Tile Palette, убедитесь, что всё ещё выбрана PrefabBrush. Сделайте так, чтобы Element 0 ссылался на заготовку Goal из папки /Assets/Prefabs проекта.

Воспользуйтесь стандартной тайловой кистью для отрисовки одного тайла-префаба цели в верхней части комнаты за ловушками:

Как сделать карту в юнити

Как сделать карту в юнити

Последние штрихи

Сейчас подземелье слишком светлое и свободное. Мы можем добавить ему стиля, переключившись на материал 2D-спрайта, способный реагировать на свет.

Выберите Sprite объектов Player, Goal и ShootingTrap, и сделайте так, чтобы Material компонента Sprite Renderer использовал SpriteLightingMaterial:

Как сделать карту в юнити

Это материал с прикреплённым к нему шейдером Sprite/Diffuse. Он позволяет освещению сцены воздействовать на спрайты.

В GameObject Grid выберите объекты BaseLayer, DungeonFloorDecoration, Collideable и Goal, а потом воспользуйтесь инспектором, чтобы тоже использовать в материале Tilemap Renderer Material SpriteLightingMaterial.

Затем выберите в GameObject Lights Directional light и снизьте значение Intensity Light до 0.3.

Как сделать карту в юнити

Также вы сейчас заметите, что Player носит с собой Point light, то есть светящий вокруг него Lantern.

Теперь, когда спрайты в сцене используют подходящий материал, освещение Unity влияет на все окружающие его спрайты.

Перетащите две копии префаба FlickerLight из папки /Assets/Prefabs проекта в Scene и разместите их в GameObject Lights.

Задайте первому префабу позицию (X:-11.25, Y:4, Z:-1.35), а второму — (X:2.75, Y:4, Z:-1.35).

Создайте новый слой Tilemap под названием WallsAndObjects и задайте в инспекторе Tilemap Renderer Order in Layer значение 15. Не забудьте, чтобы Material тоже использовал материал SpriteLightingMaterial.

Переключите кисть палитры тайлов обратно на Default Brush, а Active Tilemap на WallsAndObjects.

Воспользуйтесь инструментом brush (B) для отрисовки двух тайлов «света фонарей» под каждым из новых FlickerLight, которые мы разместили по углам начальной области:

Как сделать карту в юнити

Время трудностей

Посмотрим, сможем ли мы ещё больше улучшить подземелье. Используйте слой Tilemap WallsAndObjects для создания книжных шкафов в верхней части комнаты подземелья с помощью другой палитры тайлов под названием RoguelikeCustom. Также нарисуйте одну-две части стены с трещинами.

Вернитесь обратно в слой Tilemap DungeonFloorDecoration и добавьте ещё немного деталей на мраморный пол, например, трещины на нескольких тайлах:

Как сделать карту в юнити

Поздравляю, вы завершили свой первый мини-уровень подземелья! В результате у вас должно получиться нечто подобное:

Как сделать карту в юнити

Куда двигаться дальше?

Если вы пропустили какой-то шаг, то можете посмотреть на готовый результат этого туториала, открыв проект Unity Rayzor-final из скачиваемых материалов.

В этом туториале мы научились многому, но как и в любом другом деле, всегда есть что-то ещё!

Существуют интересные скрипты тайловых кистей, не рассмотренные в этом туториале. Прочитайте о них здесь и подумайте, сможете ли вы воспользоваться ими.

Также можете изучить создание анимированных тайлов здесь.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *