

AIsdkInteractableWidget) into the level from the Place Actors panel. Set its Widget Class to your UUserWidget subclass. The actor’s root is a UIsdkInteractableWidgetComponent, so all of the properties in the following steps live directly on the actor.
UIsdkInteractableWidgetComponent and set its Widget Class in the Details panel.
UWidgetComponent at runtime that renders your UMG widget and supplies the collision surface the gaze trace hits.bCreateRayInteractable property) is checked. This is the default. Gaze routes through the spawned UIsdkRayInteractable, so leaving this off produces no gaze hits regardless of the other settings.
On the interactable widget, locate Gaze Policy under **Interaction SDK | Interactable | Ray Interactable**. The property has three values: |

| Value | Behavior |
|---|---|
Use Plugin Setting | Defers to the project-wide Allow Gaze By Default setting. |
Allow | Forces this widget to accept gaze regardless of the project default. |
Disallow | Blocks gaze on this widget even when the project default allows it. |
EIsdkGazePolicy GazePolicy = EIsdkGazePolicy::UsePluginSetting;
BeginPlay, the component copies this value onto the ray interactable it spawns, so the widget-level policy is what the gaze rig sees at runtime. Use Allow when the project default is off but this panel should still respond to gaze. Use UsePluginSetting for panels that follow the project-wide default.UIsdkGazeTargetingComponent::GazeCollisionChannel, which defaults to ECC_Visibility. Only colliders set to Block on that channel produce a hit; Overlap and Ignore are skipped by the multi-trace.UWidgetComponent that the interactable widget spawns provides the collision by default. If you replaced the collision setup or nested the widget under a parent that overrides collision responses, open the widget component in the Details panel and set its response to Visibility back to Block.
UIsdkPieMouseGazeDataSource at BeginPlay, which deprojects the mouse cursor into a world-space gaze ray. Move the cursor over the panel and confirm the widget reports a hover state.
IsEyeTrackingAvailable_Implementation returns false, and select still flows through the hand rig’s InputActions->SelectAction (system pinch). To confirm the select path end-to-end, trigger a pinch from the paired headset.UIsdkWidgetRegionDebugComponent to the actor via Add Component. With bAutoWireWidget at its default of true, the component binds to the owner’s first UWidgetComponent at BeginPlay and draws wireframe boxes around each interactable region, with the whole-panel region in a distinct color.