Этот проект реализует механику перетаскивания объектов (Drag-and-Drop) по 2D сцене с возможностью их размещения на полках. Объекты падают вниз под действием гравитации при отпускании. Также реализован скроллинг сцены для перемещения по комнате.
Этот класс управляет движением камеры на основе ввода пользователя.
-
Задачи:
- Управляет движением камеры при перетаскивании объектов (drag).
- Проверяет, находится ли указатель в области, где возможно перемещение камеры.
- Обеспечивает движение камеры в пределах заданных границ фона.
-
Методы:
Update(): Обновляет позицию камеры в зависимости от положения указателя или перетаскиваемых объектов.MoveCamera(float moveAmount): Двигает камеру влево или вправо с учетом ограничений по границам фона.
Этот класс отвечает за управление процессом перетаскивания объектов.
-
Задачи:
- Начало и завершение перетаскивания объектов.
- Обработка изменений размеров объектов во время перетаскивания.
- Перемещение объектов в зависимости от ввода пользователя.
-
Методы:
StartDragging(): Начинает процесс перетаскивания. Объект увеличивает размер, а его порядок сортировки меняется.StopDragging(): Заканчивает процесс перетаскивания. Объект восстанавливает исходный размер и падает на полку (если она есть).
Этот класс представляет полку, на которую можно ставить предметы.
-
Задачи:
- Добавление и удаление объектов на полке.
- Сортировка объектов на полке по оси X для управления их порядком отрисовки.
-
Методы:
AddObjectToShelf(DraggableObject objectToShelf): Добавляет объект на полку и сортирует его по положению.RemoveObjectFromShelf(DraggableObject objectToShelf): Удаляет объект с полки.SortObjectsRendering(): Сортирует объекты на полке по оси X и обновляет порядок их отрисовки.
Этот класс проверяет коллайдеры объектов под определенным объектом с помощью физического оверлапа.
-
Задачи:
- Получение списка коллайдеров, находящихся ниже объекта.
- Визуализация области проверки через Gizmos.
-
Методы:
GetCollidersBelow(): Проверяет, какие коллайдеры находятся ниже объекта с учетом его положения и экрана.OnDrawGizmos(): Визуализирует область, в которой проверяются коллайдеры, в редакторе Unity.
Этот класс управляет объектами, которые могут быть перетаскиваемыми на сцене.
-
Задачи:
- Реализует логику перетаскивания объектов.
- Управляет падением объектов и их установкой на полки.
- Использует физику (падение) для анимации размещения объектов.
-
Методы:
StartDragging(): Активирует режим перетаскивания объекта, увеличивает его размер и изменяет порядок отрисовки.StopDragging(): Завершает перетаскивание и размещает объект на полке, используя физическое падение для анимации.
- Для перемещения объектов в пределах сцены и их взаимодействий с полками используется система 2D коллайдеров.
- В проекте используется DOTween для анимации изменения размеров и перемещения объектов.
- Взаимодействие с коллайдерами объектов происходит через класс ColliderChecker, который проверяет наличие других объектов под данным объектом.