Целевая платформа – PC
Unity – до 2019(лучше 2018.3.0)
Стиль кода - стандартный из Resharper(VisualSudio) или Rider(убрать все Warnings)
1) Создать пустую сцену с базовым контекстом
После клика на мышь (тач) на сцену в месте клика появляется "Примитивная фигура меш".
1а) "Примитивная фигура меш" должна загрузиться из ассетбандлов (префаб) - один рандомный из 2-3 асетбандлов (Добавить куб, сферу, капсулу, или другие модели на ваше усмотрение);
1b) Названия префабов должны загрузиться из джсонки, которая загрузится из ресурсов во время рантайма.
2) После клика на объект - в модельке должно увеличится число кликов по нему (после нажатия на левую кнопку мыши пускается raycast и если луч попал по нашему объекту, то срабатывает сам "клик на объект" - увеличивается число кликов в объекте).
Каждые n секунд объект будет менять цвет.
Он начинает менять цвет сразу после создания объекта, а не после клика первого или любого по нему.
Клики, которые делает юзер, живут своей жизнью, а таймер бесконечный – своей. При этом, когда мы кликаем по обьекту и увеличивается кол-во кликов,то он должен перекрашиваться в цвет по условиям пункта 3а, но логика изменения цвета от таймера не исчезает.
Когда объект поменял цвет на рандомный с помощью таймера, в нем количество кликов не меняется.
3) В зависимости от количества кликов объект должен раскрашиваться в разные цвета.
Количество кликов и цвет должен быть прописан в ScriptableObject, который грузится из ресурсов.
3а) Для каждого из типа объектов (куб, сфера, капсула) - свои параметры для цвета и настройки.
4) После того, как создался объект, вытаскиваются настройки игры (общая админка), в которой указано количество секунд, по происшествии которых, объект будет сам менять цвет (на рандомный вообще, он не должен браться из админки).
Ожидание определенного времени сделать с помощью UniRX (не карутиной)
P.S. : общая админка - ScriptableObject, грузится из папки Resourses (GameData)
Модель фигуры (GeometryObjectModel):
- int ClickCount;
- Color CubeColor.
Админка (ГД баланс для объекта) (GeometryObjectData: ScriptableObject):
- List<ClickColorData> ClicksData;
// Если текущее количество кликов у обьекта ObjectType находится в диапазоне MinClicksCount-MaxClicksCount,
// то цвет текущего обьекта меняется на Color
ClickColorData:
- string ObjectType;//тип создаваемого объекта (куб, сфера, капсула)
- int MinClicksCount;
- int MaxClicksCount;
- Color Color;
Админка (ГД баланс самой игры) (GameData: ScriptableObject):
- int ObservableTime