Skip to content

Техническое задание для Playnera

Notifications You must be signed in to change notification settings

s777enx/DragNDrop2D

Repository files navigation

DragNDrop2D

Техническое задание для Playnera
APK Файл присутствует в Release
Файлы .cs на главной репозитория предназначены для быстрого просмотра
Эти же файлы хранятся уже в готовом проекте (папке)

Видео с игровой механикой:

https://disk.yandex.ru/i/BICOdzuEUIIu3Q

Основные технические моменты:

  • Физика на объекте используется с помощью Rigidbody 2D.

  • В коде устроена автоматическая проверка по фиксированным и свободным слотам, при добавлении новых слотов в инспекторе Unity изменения в коде не требуются.

  • Размер, ротация сбрасываются при помещении объекта в слот.

  • Свободный слот - самая сложная механика среди остальных:

    • При помещении объекта на "полку" - он уменьшается пропорционально
      дистанции между нижней гранью яблока и нижней гранью полки.
      Чем дальше грань яблока от грани полки тем объект меньше.
  • Объект имеет свободу позиции, однако при отпускании его
    возле одного из фиксированных слотов объект магнитится.

  • Скроллинг реализован при помощи сравнения левого края
    видимости камеры и левого края заднего фона, аналогично
    с правым краем.

  • Для слотов стоят скрипты-пустышки для обозначения их
    в адресации кода, а также возможности модификации.

  • Границы помещения свободных слотов реализованы не с помощью
    SpriteRenderer, а с помощью BoxCollider2D. Но при этом
    их можно спокойно реализовать без него.

Недочеты:

  • Реализации глубины (Свободный слот) имеет свои недочеты:
  • По мере увеличивания размера слота без редактирования кода
    изменения размеров может пойти в обратную сторону.
  • Возможна более детальная и индивидуальная настройка чисел
    для точного местоположения после изменения размера и позиции.

About

Техническое задание для Playnera

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages