3D widget is very useful to build a scene with runtime font, multiple child widgets… But I have problem about interaction with these widgets, in VR.
I’ve found current interaction, like mouse over and mouse click, is based on desktop’s cursor position, I doubt it would work in VR, especially without desktop window, only VR application exist.
Is there any tips? I really hate methods like manually placing collision bodies to make widgets “interactive”.
After “::ShowWindow((::HWND)GEngine->GameViewport->GetWindow()->GetNativeWindow()->GetOSWindowHandle(), false)”, the interaction is far from perfect. Only “pressed” and “released” event is available for button, while “clicked”, “hovered”, “unhovered” never get fired.
I have made some hack and get inputs directly from steam vr plugin, so at least I got “pressed” and “released”. But I still want a perfect interaction with 3D widget if posssible, can you help me?
Does your tutorial fix these problems or any ideas is appreciated!!!
I found a workaround to fix most of problems. There is a ‘bAppIsActive’ in FSlateApplication, after window got hidden, this variable would turn to false and block mouse capturing. Adding a new variable like bHMDIsActive world fix that.
Besides, ‘hover’/‘unhover’ still are not fired. For Mitch’s plugin, I think add another two emulators to call SWidget’s OnMouseEnter/OnMouseLeave world be good, hope that should be good enough for me.
I am not familiar with input event routing. Thanks again for inspiring!