Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Drag-and-Drop | Playnera

Описание

Этот проект реализует механику перетаскивания объектов (Drag-and-Drop) по 2D сцене с возможностью их размещения на полках. Объекты падают вниз под действием гравитации при отпускании. Также реализован скроллинг сцены для перемещения по комнате.

Классы проекта

CameraController

Этот класс управляет движением камеры на основе ввода пользователя.

  • Задачи:

    • Управляет движением камеры при перетаскивании объектов (drag).
    • Проверяет, находится ли указатель в области, где возможно перемещение камеры.
    • Обеспечивает движение камеры в пределах заданных границ фона.
  • Методы:

    • Update(): Обновляет позицию камеры в зависимости от положения указателя или перетаскиваемых объектов.
    • MoveCamera(float moveAmount): Двигает камеру влево или вправо с учетом ограничений по границам фона.

Dragger

Этот класс отвечает за управление процессом перетаскивания объектов.

  • Задачи:

    • Начало и завершение перетаскивания объектов.
    • Обработка изменений размеров объектов во время перетаскивания.
    • Перемещение объектов в зависимости от ввода пользователя.
  • Методы:

    • StartDragging(): Начинает процесс перетаскивания. Объект увеличивает размер, а его порядок сортировки меняется.
    • StopDragging(): Заканчивает процесс перетаскивания. Объект восстанавливает исходный размер и падает на полку (если она есть).

Shelf

Этот класс представляет полку, на которую можно ставить предметы.

  • Задачи:

    • Добавление и удаление объектов на полке.
    • Сортировка объектов на полке по оси X для управления их порядком отрисовки.
  • Методы:

    • AddObjectToShelf(DraggableObject objectToShelf): Добавляет объект на полку и сортирует его по положению.
    • RemoveObjectFromShelf(DraggableObject objectToShelf): Удаляет объект с полки.
    • SortObjectsRendering(): Сортирует объекты на полке по оси X и обновляет порядок их отрисовки.

ColliderChecker

Этот класс проверяет коллайдеры объектов под определенным объектом с помощью физического оверлапа.

  • Задачи:

    • Получение списка коллайдеров, находящихся ниже объекта.
    • Визуализация области проверки через Gizmos.
  • Методы:

    • GetCollidersBelow(): Проверяет, какие коллайдеры находятся ниже объекта с учетом его положения и экрана.
    • OnDrawGizmos(): Визуализирует область, в которой проверяются коллайдеры, в редакторе Unity.

DraggableObject

Этот класс управляет объектами, которые могут быть перетаскиваемыми на сцене.

  • Задачи:

    • Реализует логику перетаскивания объектов.
    • Управляет падением объектов и их установкой на полки.
    • Использует физику (падение) для анимации размещения объектов.
  • Методы:

    • StartDragging(): Активирует режим перетаскивания объекта, увеличивает его размер и изменяет порядок отрисовки.
    • StopDragging(): Завершает перетаскивание и размещает объект на полке, используя физическое падение для анимации.

Примечания

  • Для перемещения объектов в пределах сцены и их взаимодействий с полками используется система 2D коллайдеров.
  • В проекте используется DOTween для анимации изменения размеров и перемещения объектов.
  • Взаимодействие с коллайдерами объектов происходит через класс ColliderChecker, который проверяет наличие других объектов под данным объектом.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages