MapLinker Config
La clase UIdealTwinMapsLinkerConfig encapsula una configuración diseñada para facilitar la gestión y navegación entre niveles o mapas dentro de un proyecto.

El propósito principal de esta clase es:
Mapear o enlazar diferentes mapas/niveles del juego a través de una lista de configuraciones (
MapsList).Definir metadatos para los mapas, como su tipo (interior, exterior, neutral), su orden de importancia, y referencias suaves (
TSoftObjectPtr) a los niveles.Exponer funcionalidades para filtrar y ordenar niveles con base en sus propiedades, como su tipo o su importancia, mediante funciones
BlueprintCallable.
Este sistema es particularmente útil para optimizar viajes o transiciones entre niveles en un entorno que necesita un control estructurado sobre los mapas.
Propiedades principales de UIdealTwinMapsLinkerConfig
TArray<FMapLinkerEntry> MapsList:Almacena todas las entradas de configuración de mapas.
Cada entrada está definida por la estructura
FMapLinkerEntry. Esta contiene:Id: Nombre identificador del mapa.DisplayName: Nombre decorativo opcional.Visible: Si debe mostrarse como decorativo en listas (por ejemplo, en UI).MapType: Tipo de mapa (Neutral,Interior,Exterior).ImportanceOrder: Orden de importancia para clasificar las entradas.MapReference: Referencia suave al nivel como unTSoftObjectPtr<UWorld>.
FGameplayTag AliasConfiguration:Sirve para identificar esta configuración mediante un alias.
Funciones importantes
GetAllMapEntryType:Devuelve todas las entradas de mapas (
FMapLinkerEntry) que concuerdan con un tipo específico (EMapLinkerType).
Ejemplo: Puedes obtener todos los mapas definidos como "Exterior".
GetAllMapEntryTypesSorted:Devuelve todas las entradas de mapas, filtradas por tipo, y ordenadas por
ImportanceOrder.
Ejemplo: Obtén todos los mapas del tipo "Interior", ordenados por su importancia:
Relación con AIdealTwinLevelConfiguration
Esta configuración (UIdealTwinMapsLinkerConfig) trabaja en conjunto con la clase AIdealTwinLevelConfiguration, que es un actor dentro del nivel. Algunas de sus funcionalidades clave incluyen:
Obtener la configuración enlazada de niveles:
A través de
GetMapLinkerEntries()se carga y devuelve la lista de mapas configurados enUIdealTwinMapsLinkerConfig, ordenada porImportanceOrder.
Cambio de niveles:
Se pueden cambiar niveles utilizando:
SwitchToMapLinkerbyEntry: Cambia de nivel usando una entrada específica deFMapLinkerEntry.SwitchToMapLinkerbyId: Cambia a un nivel basado en su identificador único (Id).
Ejemplo práctico de uso
Supongamos que tienes una configuración de mapas con niveles para interiores y exteriores, y deseas mostrar en tu interfaz los nombres de los niveles exteriores disponibles. Además, permitir un botón que cambie al nivel seleccionado.
Resumen
UIdealTwinMapsLinkerConfig es una herramienta para gestionar niveles en proyectos. Su integración con AIdealTwinLevelConfiguration permite la navegación eficiente entre mapas basándose en configuraciones preestablecidas. Puede ser usado para sistemas UI, listas ordenadas, y la aplicación lógica de transiciones entre niveles.