This release introduces significant refactors and improvements to the MG Spatial Selection plugin, focusing on performance, modularity, and ease of use.
π Key Features & Refactors
β’
Hybrid CPU/GPU Architecture: Refactored the selection logic to use a hybrid approach. The CPU handles high-performance overlap detection using UBoxComponent, while the GPU manages pixel-perfect visual masking via Material Parameter Collections (MPC).
β’
Enhanced Input Integration: Migrated selection triggers to the Enhanced Input system. The UMGSpatialSelectionComponent now automatically binds to a configurable UInputAction for seamless integration into modern UE5 projects.
β’
Decoupled Selection Actor: Introduced AMGSpatialSelectionActor to encapsulate the physical selection volume. This improves performance by offloading collision updates and allows for more flexible visual representations.
β’
Dynamic Material Feedback: Added real-time updates to Material Parameter Collections (SelectionCenter, SelectionExtent, SelectionOpacity). This enables "Terrain-Aware" selection masks that follow geometry without expensive CPU raycasts.
β’
Selection Decay System: Implemented a smooth "fade-out" effect (DecayTime) for the selection mask after the user finishes their selection, providing a more polished UX.
β’
Interface-Driven Interaction: Refined the IMGSpatialSelectionInterface to allow any actor to easily respond to selection events (e.g., showing a highlight ring or updating health bars) without tight coupling.
π§ Technical Improvements
β’
Optimized Tick Management: Component and Actor ticking are now more strictly controlled, with UpdateThreshold checks to prevent unnecessary material parameter updates from micro-jitter.
β’
Flexible Collision Filtering: Added CollisionChannels array to the component settings, allowing users to easily define which actor types (Pawns, PhysicsBodies, etc.) should be selectable.
β’
Improved Life-cycle Management: Refined BeginPlay and EndPlay logic to ensure clean registration/unregistration of actors and proper cleanup of the transient selection actor.
β’
Debug Visualization: Added a bShowDebug toggle to draw internal selection boxes and trace points, making it easier to calibrate the selection volume height and extent.
π¦ Demo Project Updates
β’
Updated the demo project to showcase the new refactored plugin.
β’
Included BP_TopDownCharacter and SelectionTestActor_BP as reference implementations of the new system.
β’
Synchronized .gitignore and build dependencies for better compatibility with Unreal Engine 5.7.