Unit Status as Strings

Replaces unit status fields (e.g., availability) from enums to raw strings, enabling direct imports from CSV, Google Sheets, or CRM systems without additional mapping.
Synchronized Hover States for Labels

Two-way communication between UI list items and POI labels. When a button is hovered in the list, the corresponding POI label reflects the hover state, and vice versa. The Game Instance acts as a centralized mediator for synchronized visual feedback.
Expandable POI Labels on Hover

Hover-based label behavior for POIs. When the user hovers over a screen space label or POI geometry, the label expands to reveal the full name, improving readability without cluttering the scene.
Background Music
Loops randomly selected music tracks to enhance mood. Automatically disables playback when gallery videos are active.
Camera Focus Updates with Orbit Target Change

Updates the camera focus distance when the orbit target changes, ensuring the new target remains sharp and unaffected by DOF (depth of field) blur. Update 01 – July 23, 2025: Moved from Planned to Completed.
Clamp Camera Rotation for POIs
Constrains the player’s camera rotation after focusing on a POI, locking the view to a predefined angle or direction.
POI Interactables

POIs can now have Blueprint actors assigned to them that react when selected or deselected. These interactables can play animations, change materials, move objects, or trigger other visual effects. Each POI holds a list of these actors and calls their Activate or Deactivate events automatically. This makes it easy to create custom responses per POI […]
POI Interactable – Animated 3D Text

Displays animated 3D text when a POI is selected. Can be used for titles, labels, or descriptions tied to specific points of interest.
Audio Feedback on POI Selection
Plays audio cues when users interact with Points of Interest to enhance feedback. Can be extended for status-based cues like “Available”, “Sold”, and “Reserved”.
Block Input Propagation on UI Elements
Prevents unintended camera movement or interactions when the user starts a touch or mouse drag on a UI element (like a panel or border). Blocks input from reaching the PlayerController by using overrides (OnMouseButtonDown / OnTouchStarted). This ensures the Input system doesn’t respond when the user is interacting with the interface.