Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/55: Рейтинг темы: голосов - 55, средняя оценка - 4.58
1 / 1 / 1
Регистрация: 09.11.2016
Сообщений: 51

Гексагональная сетка

28.06.2019, 22:58. Показов 11308. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как лучше реализовать гексагональную сетку? Поле будет не особо большое, примерно как в героях или Disciples, но хотелось бы сделать правильно и без костылей.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.06.2019, 22:58
Ответы с готовыми решениями:

Сетка
Допустим у меня есть не ровный террейн, как мне создать сетку (клетки) для того что бы персонаж мог по ним передвигаться. (игра по типу...

Координатная сетка
Народ подскажите пожалуйста какие есть подходы к созданию координатной сетки. Хочется чтобы как в фермах выбираешь объект для размещения на...

2D сетка из треугольников
Как реализовать игровое поле состоящее из сетки из равносторонних треугольников? Игрок может с помощью стрелок перемещаться из текущей в...

8
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
28.06.2019, 23:29
https://habr.com/ru/post/424257/
2
1 / 1 / 1
Регистрация: 09.11.2016
Сообщений: 51
29.06.2019, 01:21  [ТС]
Статью видел, но возник вопрос, почему не использовать встроенную в юнити tilemap? Разве она не лучше подойдет для 2D?
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
29.06.2019, 09:16
Цитата Сообщение от Ironhide33 Посмотреть сообщение
почему не использовать встроенную в юнити tilemap? Разве она не лучше подойдет для 2D?
В статье гексагональная сетка используется для 3d, поэтому там и нет tilemap.
Если у вас поверхность всегда плоская - то да, можно использовать tilemap.
1
1 / 1 / 1
Регистрация: 09.11.2016
Сообщений: 51
29.06.2019, 21:31  [ТС]
Появился еще один вопрос: как получить все смежные гексы для определенного гекса? Хочу при выделении юнита подсветить доступные для него клетки, то есть куда он может дойти за один ход. Есть мысль как то рекурсией обойти клетки вокруг позиции юнита, но мне кажется должен быть способ лучше.
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
29.06.2019, 21:42
Клеток много? Если нет, то А* пробегись да и все.
0
1 / 1 / 1
Регистрация: 09.11.2016
Сообщений: 51
29.06.2019, 21:50  [ТС]
Клеток меньше сотни, прошу прощения за глупый вопрос, но что обозначает А*?
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
29.06.2019, 23:10
Алгоритм поиска путей https://ru.wikipedia.org/wiki/A*
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
30.06.2019, 09:43
Лучший ответ Сообщение было отмечено Ironhide33 как решение

Решение

Цитата Сообщение от Ironhide33 Посмотреть сообщение
как получить все смежные гексы для определенного гекса?
Вот система координат для гексагональной сетки в Юнити:


В соответствии с ней, получить все соседние ячейки можно так:
C#
1
2
3
4
5
6
7
8
9
    public IEnumerable<Vector3Int> GetCellsAround(Vector3Int cell)
    {
        yield return new Vector3Int(cell.x, cell.y + 1, cell.z);
        yield return new Vector3Int(cell.x, cell.y - 1, cell.z);
        yield return new Vector3Int(cell.x + 1, cell.y, cell.z);
        yield return new Vector3Int(cell.x - 1, cell.y, cell.z);
        yield return new Vector3Int(cell.x - 1, cell.y + 1, cell.z);
        yield return new Vector3Int(cell.x - 1, cell.y - 1, cell.z);
    }
Вложения
Тип файла: zip New Unity Project (14).zip (485.9 Кб, 76 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.06.2019, 09:43
Помогаю со студенческими работами здесь

Сетка взаимодействий
Привет у меня в игру несколько фракций и они могут быть другдругу враждебны или дружественны хочу сделать такую сетку для...

Сетка как в градостроителях
Приветствую вас господа. Подскажите как сделать сетку как в city skyline, то есть ставишь дорогу, вокруг него появляется сетка где можно...

Гексагональная сетка (C++ + SFML)
Здравствуйте. Подскажите, пожалуйста, как можно с помощью библиотеки SFML создать гексагональную сетку (картинка в пример). Каким образом...

Гексагональная сетка, перемещение фишек.
Есть гексагональная сетка на паинтбоксе, на ней фишки (по сути это картинки и булевы переменные, привязанные к массиву). Если зажать...

Гексагональная сетка с поворотом на 45 градусов
Мне нужно реализовать такую гексагональную сетку, как в приложении, только угол надо самому регулировать. В задачу входит: нарисовать эту...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru