Нужно разработать на unity, используя стандартные встроенные инструменты (например tilemap), кликабельную карту регионов в которой можно выделять регионы, задавать им цвет или спрайт(чтобы цвет не был монотонным) или шейдер. Операции с картой будут выполняться через код C#.
Этот объект с картой будет добавлен в canvas и он должен будет подстраиваться под ширину и высоту родительского объекта. Контуры и обводка границ не должны быть ровными(можно искривлять кривыми безье). Если наводим мышь на регион, то он подсвечивается(выделяется его граница) заданным цветом, например как тут белым.
Точки региона могут располагаться в разных местах и быть окруженными другими точками других регионов. При подсветке выделяются границы всех точек региона.
Например как вот тут карта:
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 рублей. Как на картинке с примером из игры выводится текст.