Суть задания заключается в визуализации такого физического процесса, как полет мяча по параболе. Визуализация строится на основе данных, которые были просчитаны в математической модели. Исходные данные хранятся в папке Resources
.
- Сцена содержит объект Ball, который представляет из себя сферу. При запуске сцены, Ball находится в поле видимости камеры. Каждый раз, по нажатию на Ball, он должен проследовать по траектории указанной в файле
ball_path.json
. - Запуск движения должен работать только если Ball находится в состоянии покоя, т.е. если он еще не начал или уже закончил движение, но не во время движения. Скорость движения Ball по траектории должна быть выбрана по вашему усмотрению.
- Камера должна всегда следовать за Ball и должна быть сфокусирована на нем.
- Во время движения Ball по траектории отображать слайдер на экране. Предоставить с помощью него возможность регулировать скорость движения Ball по траектории. Когда значение слайдера 0, движение Ball должно быть приостановлено и продолжено при значении слайдера > 0. При значении 1, скорость движения Ball будет максимальной.
- Нарисовать траекторию движения Ball. Траектория рисуется, по мере движения Ball. То есть должна быть отрисована только та часть пути, которую прошел Ball до текущей точки. Когда Ball находится в начальной точке, траектория его движения не рисуется.
- При двойном нажатии на Ball он перемещается в начальную точку траектории движения. Двойное нажатие работает как в момент движения, так и в момент покоя Ball. Если Ball был в движении, то движение отменяется.
- Добавить в сцену еще 3 объекта Ball, каждый из которых будет двигаться по траектории указанной соответственно в файлах
ball_path2.json
,ball_path3.json
,ball_path4.json
. - Добавить возможность вращать камеру по орбите вокруг Ball с помощью мышки (macOS/Windows) или на тач дисплее (iOS/Android).
- Добавить возможность переключать камеру между всеми объектами Ball в сцене. Переход осуществляется с помощью 2-ух кнопок
Left
иRight
на экране. Если переключение камеры происходит во время движения того Ball, на котором сфокусирована камера в текущий момент, скорость движения этого Ball становится равна 0.
- Каждый уровень сложности должен включать в себя реализацию функций из предыдущего уровня.
- Каждый из уровней сложности может быть реализован в отдельной сцене или же все функции могут быть реализованы в одной сцене.
- Допускается использовать любые сторонние библиотеки распространяемые под свободной лицензией. Не допускается использовать платные инструменты.
- Любой художественный креатив не нарушающий условия задания приветствуется, но необязателен.
- Проект должен быть выложен на GitHub для проверки
- Проект должен запускаться на Unity 2018.4+
- Проект должен быть написан на языке программирования C#.
- Все сторонние библиотеки и ресурсы должны хранится внутри проекта.
- Проект должен собираться на одну из платформ macOS/Windows/iOS/Android