Вопрос у меня возник: а здесь есть какой-либо раздел для разбора конкретного кода?
Профит таких тем вижу в формировании рабочих примеров для новичков для последующих разборов.
Например, я только начал изучать Unity. Делаю гексагональную спрайтовую карту (при помощи RagePixel). Из опыта C# пытаюсь всё организовать по классам, но уже сомневаюсь в правильности организации своей архитектуры. Можно ли выкладывать простейший код для разбора конкретных вопросов? Ничего лишнего там особо нет, чтобы не отвлекаться от предмета вопроса.
Цель - реализовать самоорганизующуюся гексагональную карту (на входе карта в некоем виде), которая сама инициализируется при старте и отслеживает работу с мышью (клики по ячейкам).
Предполагаемая архитектура (объясняю своими словами, простите, может спутаю термины):
- Класс ячейки может отображать Prefab шестигранника с любым типом местности (равнина, лес, горы) и содержит информацию по типу юнита на нём, если таковой есть (классы в папке Classes).
- Класс карты по входной матрице строит карту из классов ячеек (скрипт MapController.cs).
- На сцене единственный объект - камера, на которой и висит построитель карты (MapController.cs), контроллер мыши (MouseController.cs) и пользовательский интерфейс (UserInterface.cs). Последнее для данного примера не важно, забыл удалить.
Сейчас столкнулся с тем, что:
1. Все объекты ячеек создаются копиями префеба Cell и смена текстуры одной ячейки влияет на все экземпляры этого класса (сделал выводы, но встал в ступор как быть теперь?).
2. Physics.Raycast никак не хочет втыкаться в ячейки (я уже начал грешить, что у объектов ячеек нет какого-то необходимого коллайдера? или лучи не в ту сторону "бьют"?)
Потому можете подсказать верное направление для реализации? Постарался убрать всё лишнее из проекта и минимизировать его, если у кого будет время заглянуть, буду благодарен конструктивным замечаниям.