UIsdkInteractableWidgetComponent| Level | What it demonstrates | Key concepts |
|---|---|---|
StartLevel (persistent) | Level streaming hub, runtime input switching | Level streaming, ISDK_SetControllerHandBehavior |
PokeExamples | Poke interactions with UI widgets | UIsdkInteractableWidgetComponent, bCreatePokeInteractable=true |
RayExamples | Ray-based interactions with hover feedback | bCreateRayInteractable=true, hover audio |
TransformerExamples | Two-handed object manipulation | 18 grab pose data assets for Mug object |
DistanceGrabExamples | Remote object grabbing with multiple strategies | PullToHand, RelativeToPointer, ManipulateInPlace |
ThrowExamples (standalone) | Physics-based throwing mechanics | Velocity estimation, release detection |
HandPoseStudio (standalone) | Hand pose authoring tool | Pose recording, data asset creation |
UIsdkInteractableWidgetComponent with bCreatePokeInteractable=true enables poke detection on UMG widgets. RayExamples adds hover audio feedback when the ray intersects interactable surfaces. TransformerExamples uses 18 grab pose data assets for a Mug object to demonstrate two-handed manipulation. DistanceGrabExamples offers three strategies: PullToHand brings the object to your hand, RelativeToPointer maintains offset from the pointer, and ManipulateInPlace moves the object without pulling. Runtime switching between controllers and hands uses ISDK_SetControllerHandBehavior.UIsdkInteractableWidgetComponent enables poke-based interaction on UMG widgets:// Add UIsdkInteractableWidgetComponent to any widget actor // Set bCreatePokeInteractable = true to enable poke detection // The component automatically creates poke interactable geometry // matching the widget bounds UPROPERTY(EditAnywhere) bool bCreatePokeInteractable = true;
// Enable ray interaction on a component // bCreateRayInteractable = true generates ray hit surfaces // Hover audio plays when ray intersects the interactable UPROPERTY(EditAnywhere) bool bCreateRayInteractable = true;
// 18 grab pose data assets define hand positions for the Mug object // Each asset stores bone transforms for a specific grab approach angle // The system selects the closest matching pose at grab time
// PullToHand: object flies to the grabbing hand
// RelativeToPointer: object follows pointer offset, maintaining relative position
// ManipulateInPlace: object transforms without translating toward hand
enum class EDistanceGrabStrategy { PullToHand, RelativeToPointer, ManipulateInPlace };
// Call ISDK_SetControllerHandBehavior to switch input mode at runtime // The system updates all active interactors to use the new input source // No level reload required—switching is immediate