Нужно разработать на unity, используя стандартные встроенные инструменты (например tilemap), кликабельную карту регионов в которой можно выделять регионы, задавать им цвет или спрайт(чтобы цвет не был монотонным) или шейдер. Операции с картой будут выполняться через код C#. Этот объект с картой будет добавлен в canvas и он должен будет подстраиваться под ширину и высоту родительского объекта. Контуры и обводка границ не должны быть ровными(можно искривлять кривыми безье). Если наводим мышь на регион, то он подсвечивается(выделяется его граница) заданным цветом, например как тут белым. Точки региона могут располагаться в разных местах и быть окруженными другими точками других регионов. При подсветке выделяются границы всех точек региона.
Например как вот тут карта: https://itmages.su/image/QWBz
На вход поступают такие параметры
int ширина карты в клетках. // например карта 30x40 или 300x200 int высота карты в клетках. List<VisualRegion> регионы; // список регионов
public class VisualRegion{ Int regionId; // уникальный id региона List<Position2D> points; // точки из которых состоит регион внутри int x и int y. Color bgColor; // цвет заливки региона Color borderColor; // цвет границы региона int borderWidth; // толщина границы региона }
Класс карты предоставляет методы:
// вызывается после клика по региону // возвращает id региона и Position2D точку в которую кликнули onRegionClicked(); // слушаем событие
// Клик вне региона onRegionOutSideClicked();
// Задаем активный регион то есть он выделяется setActiveRegion(int region);
Дополнительная задача разместить передаваемый текст (указываем его размер, шрифт) по центру региона в наиболее свободном месте (включая точки на других островах) + 5000 рублей. Как на картинке с примером из игры выводится текст.