ptitca_zu
@ptitca_zu
Programmer. Reader. Introvert

Как правильно сгенерировать игровое поле?

Доброго дня.

Делаю игру на Unity. Нужно сгенерировать игровое поле, заполненное тайлами. Есть два требования.
1. На поле должна быть наложена сетка. То есть явно обозначены границы игровых клеток.
2. В каждой клетке должна отображаться текстовая информация (число), с которой я в дальнейшем буду работать - изменять, скрывать итд.

Собственно, вопросы.

1. Как правильно наложить сетку на игровое поле? То, что я нашел представляется избыточным.
2. Отображение чисел я сделал накладыванием меньшего размера поверх спрайта фона. При этом спрайт с числом берется рандомно из массива префабов. Но копаясь среди компонентов обнаружил GUI Text. Отобразить его не получилось пока, но кажется он мне больше подходит. Может есть еще какой-то, более правильный способ, реализовать такой функционал?

Спасибо заранее за ответы.
  • Вопрос задан
  • 4472 просмотра
Решения вопроса 4
@vovo801
Freelance Unity3d/C# Developer
Смотря какая сложность игры и что потом будет происходить. Я недавно сделал простую игру типа 2048 целиком на UnityUI. То есть у меня есть только Canvas и все что есть в игре сделано при помощи UI. Там есть для построения сеток GridLayoutGroup.
Нашел такой крутой скрипт и использовал его вместо GridLayoutGroup: www.justapixel.co.uk/ugui-auto-scaling-grid-layout-code
По сути тоже помогает организовать сетку, только этот еще и растягивает по размеру в зависимости от размера Canvas.
Если это не подходит, можно для каждого тайла создать Canvas, перевести в WorldSpace и показывать на нем GUI Text. На счет производительности такого решения не знаю, но по идее все должно получиться.
Забыл написать - есть еще TextMesh. Тоже подходит для отображения текста. Самое простое в Вашем случае по - моему. А никто еще не предлагал его.
Ответ написан
@JuniorNoobie
Сижу в поддержке, пишу мелкие проекты
Если прямоугольное поле, то перебором по массиву(длина, ширина) рисуем квадраты на канвасе со смещением на длину ячейки. Что отображать внутри ячейки решает объект, лежащий в массиве: какая цифра - такую и рисуем или вставляем подготовленный спрайт.
По сути будет просто картинка на канвасе. Затем начинается работа с мышью, определение координат щелчка и определение той ячейки, которая отвечает за определенный участок игрового поля. Затем вызываем метод кликнутой ячейки. Все просто вроде...
Ответ написан
@GreatRash
Если поле заполнено тайлами, то не логичней ли рисовать сетку сразу на текстуре тайла? В конце концов можно вообще накладывать сетку шейдером.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Создайте сетку из квадратного префаба: расположите несколько рядом в виде матрицы.
Расчет координат каждого блока - чистая геометрия.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы