Se você estiver procurando uma maneira de determinar em qual área do mapa o usuário clicou ou tem seu cursor, eu recomendaria fazer um mapa colorido e pintar cada área em sua própria cor única. É assim que o Paradox Interactive faz isso em seus jogos, aqui está uma captura de tela de como o mapa do Crusader Kings 3 na verdade Parece sob a alcance:

Esclarecer isso seria apenas um arquivo .png que reside nos arquivos do jogo. Este arquivo é acompanhado por um arquivo de dados que contém informações sobre cada área, o mais importante é sua cor. Por exemplo, este arquivo pode ser assim:
// Its inside identifier
"area_baravia": {
// Participant-readable title
"title": "Baravia",
// The colour of this space within the picture. On this instance it is simply the hex worth.
"coloration": "ff0000",
// Different information you may want
"isOcean": false,
...
},
"area_napoli": {
...
}
Depois de ter esses dois arquivos, você só precisa descobrir onde o cursor do mouse do usuário está em relação ao arquivo de imagem e obtenha a cor desse pixel para ver qual área eles estão selecionando. Pseudocode:
var mousePosition = GetMousePosition()
var mousePositionOnImage = TransformToImageCoordinates(mousePosition)
var pixel = GetPixel(mapImage, mousePositionOnImage)
var space = FindAreaWithColor(pixel)
A implementação de GetMousePosition
Assim, TransformToImageCoordinates
Assim, GetPixel
e FindAreaWithColor
Todos dependeriam da pilha de tecnologia que você está usando. É provável que exista alguma maneira interna de fazer essa transformação na unidade, não estou familiarizado o suficiente para dar uma resposta específica aqui.