Система перемещения по сетке
MCE использует тайловую систему перемещения по сетке, построенную на Unity Tilemap. Игрок и NPC перемещаются на один тайл за раз по дискретной сетке, с обработкой столкновений, эффектов местности и межкартовых переходов системой сетки.
Основные компоненты
GridController
GridController -- менеджер тайловой сетки для каждой сце ны. Он:
- Поддерживает карту столкновений для текущей сцены.
- Отслеживает, какие тайлы проходимы, заблокированы или имеют особые свойства.
- Обрабатывает тайловые запросы столкновений (может ли персонаж перейти на тайл X,Y?).
- Управляет данными тайлов для встреч, телепортов и особой местности.
Каждая сцена имеет один GridController, прикреплённый к корню сетки/тайловой карты.
MCECharacterController
MCECharacterController управляет перемещением любого персонажа (игрока или NPC) по сетке:
- Привязка к сетке: Персонажи перемещаются ровно на один тайл за шаг.
- 4-направленное движение: Вверх, Вниз, Влево, Вправо. Без диагонального движения.
- Отрисовка спрайтов: Автоматически обновляет направление спрайта и анимацию ходьбы.
- Проверка столкновений: Запрашивает
GridControllerперед каждым движением. - Скорость движения: Настраиваемая скорость ходьбы с опциональным бегом.
PlayerCharacter
PlayerCharacter расширяет MCECharacterController функциями, специфичными для игрока:
- Обработка ввода (клавиатура и геймпад).
- Триггеры взаимодействия (нажатие кнопки действия перед NPC/объектом).
- Подсчёт шагов для встреч.
- Модификаторы скорости бега/велосипеда.
- Координация с монстром-следовником.
GlobalGridManager
GlobalGridManager управляет межкартовой навигацией:
- Управляет телепортными тайлами для переходов между сценами.
- Обрабатывает аддитивную загрузку сцен для связанных карт.
- Сохраняет состояние игрока при переходах.
- Управляет экраном загрузки / переходом затемнения.