Разработать приложение на Unity под Windows и WebGL (проект один, но есть возможно собрать под обе платформы), в котором имеется панель с набором графических 2D-элементов (можно взять любые из Asset Store) и оставшаяся область - поле для их размещения.
Пользователь должен иметь возможность:
- мышкой перетащить (drag-and-drop) элементы на поле;
- передвигать уже существующие элементы (по одному и группами);
- удалить элементы с поля и очистить его целиком;
- менять цвет или другое свойство у каждого элемента на поле.
В Windows версии необходимо предусмотреть реализацию сохранения и загрузки размещенных на поле элементов (выбрать подходящий формат сериализации).
Необходимо в реализации применить асинхронный функционал для демонстрации async/await/coroutine
Дополнительным плюсом будет размещение WebGL-версии на сервере
==========================
- блоки перемещаются мышью за любую часть, растягиваются за грани и углы.
- клик по блоку выделяет его, шифт клик - добавляет/убирает блоки из выделения.
- del и bspace удаляют выделенные блоки, либо через главное меню
- создаются блоки через главное меню
- сохранение и загрузка работают и в виндовом и в webGL билдах, но в браузере через скачку/загрузку файла, и откликается не мгновенно, иногда приходится подождать 2-3 секунды. я навскидку не придумал как нормально отловить эту задержку, чтобы заблочить в этот момент экран, и решил, что для демонстрации функционала будет достаточно.
- с зажатой правой кнопкой (вне блоков) можно перемещать подложку. в левом нижнем углу отображается величина смещения, чтобы не потеряться.
- двойной клик по заголовку блока позволяет его отредактировать
- нажатие на кнопку в правом нижнем углу блока откроет меню выбора цвета для раскрашивания блока