Лучший способ реализовать 2D-сеточную системуC#

Место общения программистов C#
Ответить
Anonymous
 Лучший способ реализовать 2D-сеточную систему

Сообщение Anonymous »

Я хочу создать сетку для 2D-игры. Шестиугольные или квадратные плитки не должны иметь значения для игры в жанре Tower Defense, где вместо башен движутся юниты. Должны быть разные типы местности. Некоторые юниты могут находиться только в X и не могут проходить через Y. Мне также нужно добавить логику к плиткам, специальную плитку, чтобы дать дополнительную дальность атаки юнитам над ней. Игра также должна обеспечивать привязку элементов к центру плиток, а также подсвечивать плитки при наведении курсора, перемещении/атаке.
Изображение

Изображение

Я могу создавать префабы для типов плиток, добавлять свойства и логику и создавать класс сетки, который создает экземпляр каждой плитки. Но как мне разработать и внедрить различные дизайны уровней? Я могу сделать это вручную, экспортировать это в JSON и попросить класс сетки выбрать, какая плитка и где будет создана, на основе информации JSON. Как мне это реализовать? Это был бы абсурдный объем работы. Является ли игровой объект для каждой плитки хорошей идеей для повышения производительности?
Как преобразовать положение мыши в эквивалентную плитку? Для квадратов это легко. Сетка разворачивается только при запуске игры, это плохо? Тайловые карты решают все проблемы, но также лишают префабы мощности. У меня нет никакой логики с плитками, и они не могут хранить свойства. Готовые кисти, пользовательские классы, унаследованные от плитки, и карта плиток для каждого типа плитки кажутся неуместными и подходят только для самых простых вещей.

Подробнее здесь: https://stackoverflow.com/questions/617 ... rid-system
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»