Interactor UI Config¶
UMounteaInteractorUIConfig (UDataAsset) controls the attention-widget pool owned by UMounteaInteractionWorldSubsystem. It is read once, in the subsystem's Initialize().
Fields¶
| Field | Type | Default | Purpose |
|---|---|---|---|
AttentionWidgetPoolSize |
int32 |
5 |
Number of attention-widget actors pre-spawned in the pool |
DefaultAttentionWidgetClass |
TSoftClassPtr<UUserWidget> |
none | Widget class shown when an actor is in attention range but not yet interaction range. Must implement IActorInteractionWidget (enforced via MustImplement metadata) |
AttentionWidgetFadeInTime |
float (s) |
0.2 |
Fade-in duration when a new actor becomes focused |
AttentionWidgetFadeOutTime |
float (s) |
0.15 |
Fade-out duration when focus is lost or the actor enters interaction range |
Pool Sizing¶
The pool is a fixed set of pre-spawned actors - AttentionWidgetPoolSize is the maximum number of actors that can simultaneously show an attention widget on one client. Raise it if your game routinely has many actors in attention range at once (a crowd scene, a room full of interactable NPCs); each idle pool entry costs one hidden actor + one UWidgetComponent, so there's a real but usually small memory/tick cost to over-provisioning.
Only the focused actor gets a widget
The pool is not "one widget per detected actor." Only the Tier 1 FocusedActor on a given interactor gets a widget assigned via AssignAttentionWidget(). If your interactor never focuses more than one actor at a time, a pool of 1 would technically suffice for a single-player client - the pool exists to support multiple simultaneous local viewers (split-screen) and to avoid a spawn/despawn every single frame focus flickers between two nearby candidates.
Fade Timings¶
The fade in/out durations are exposed for Blueprint-side UMG animations to read, via UMounteaInteractionWidgetBase-style getters or by resolving the config directly - the plugin does not drive the fade itself; your widget's own animation reads these values as its playback duration so a designer can retune pacing project-wide from one DataAsset instead of editing every widget's animation curve.
See User Interface for how the pool and widget-mode transitions work together.