I seem to be unable to interact with buttons on 3D widgets at runtime (with a player controller). Strangely, if I eject and try to interact with them through the free camera in the viewport, everything works as intended and I can press the buttons just fine. The widget also works correctly in 2D.
I’ve tried making every pivot (0, 0) (I’ve seen that suggested in several answers on here). The player controller has all mouse and touch events enabled and shows the cursor. I’ve tried using the Widget Reflector and don’t even see my widget in the list at runtime. When I mouse over it, it isn’t registered by the Reflector at all…it’s like it doesn’t exist. My max interaction distance has been set as high as a million with no improvement.
No matter what I do, I can’t get any hover or click/touch events to fire. Does anybody know what the issue is?
I just ran a quick test and I don’t seem to be able to recreate the issue in a clean project. Unfortunately my company’s project is under NDA and I can’t provide all of our blueprints. Changing the pivot hasn’t seemed to make any difference at all.
I noticed that the Widget Reflector in our project seems to always grab the ‘SVirtualJoystick’ from PlayerController.cpp when the mouse is somewhere on screen (but not on 2D widgets). No 3D widgets seem to be capable of being detected beneath it. In the clean project, ‘SVirtualJoystick’ isn’t enabled. Could SVirtualJoystick be effectively blocking 3D widget interaction? It would explain why I can interact with them once I eject.
I’m going to mark this as resolved, but I would consider this a bug. 3D widgets cannot be tapped or pressed if virtual joysticks are enabled for your mobile builds in your project settings. As soon as I disabled them, everything began working normally.
I’ve run into a similar situation in 4.8.3 … Enabling the virtual joystick prevents me from interacting with any Widget component. I’m however able to interact with the HUD drawn on the screen, but not a widget that is placed in 3D space.
I was able to reproduce this issue on our end. I have written up a report ( UE-23843) and I have submitted it to the developers for further consideration. I will provide updates with any pertinent information as it becomes available. Thank you for your time and information.
After taking a quick looking at the public tracker for this issue (linked below), it appears that this issue has been resolved. You may be experiencing a different issue. Could you create a new thread with additional information? If so, you can then post a link in a reply here and someone can follow up.
The Touch interface/Virtual joystick is blocking touch events for widget components in the level. The issue apparently won’t be fixed. My only solution was to disable the touch interface for the duration of my event and re-enable it after by using ‘Get player controller->Activate touch interface’ and select ‘None’ and, after interaction, do the same, only select the touch interface you want to bring back.