When attempting to select a SurfaceGui with a gamepad, no method works to my knowledge. When pressing the select button on a controller, you’d normally expect to be able to navigate SurfaceGuis, but you aren’t able to anymore. I’ve also attempted setting the SelectedObject to the SurfaceGui button, but it still doesn’t let me navigate it. As far as I’m concerned this happens all the time.
I’ve also tried selecting some SurfaceGuis in games that I believe I used to be able to navigate with a gamepad, but I’m no longer able to. You are able to observe this behavior at my own game’s main menu:
Here’s a comparison of what’s happening and what’s expected to happen:
Attempt to select the TextButton in Play Solo with a gamepad
I relied on the old behavior so that players using a gamepad would be able to navigate the main menu of my game which uses a SurfaceGui. This wasn’t a problem until sometime this year (I believe) and apparently it’s been like this for at least a month (at most, less than a year).
If I insert my menu into a ScreenGui, selecting the buttons with my a gamepad works as expected, so I know that this problem is only occuring for SurfaceGuis.
Sorry to bump, but this still seems to be an issue? I’ve set SelectionTuple to objects within a SurfaceGui and there is no way for me to navigate through the UI. I am able to set SelectedObject, but can’t navigate whatsoever
using an xbox controller in studio. I set the SelectionTuple to 3 objects (all 3 in seperate SurfaceGui’s) and SurfaceGui’s are parented to the PlayerGui, but it’s unable to navigate between them
local guis = {}
for i = 1, 3 do
local newGui = game.ReplicatedStorage.SurfaceGui:Clone()
newGui.Adornee = workspace[i]
newGui.Parent = game.Players.LocalPlayer.PlayerGui
table.insert(guis, newGui.TextButton)
end
if game.UserInputService.GamepadEnabled then
game.GuiService:AddSelectionTuple("Boards", unpack(guis))
game.GuiService.SelectedObject = guis[1]
end
Note, would be nice if there was like a GuiService.CurrentSelectionGroup or something, as I’m unsure if it’s possibly including other selection groups. Would be nice to be able to check for any other seleciton groups at that time, delete them, and then create new one, so the selection is 100% guaranteed to only be these objects
Hi there! Gamepad selection won’t automatically jump between different SurfaceGuis. You can manually add jumps with the NextSelectionUp/Down/Left/Right properties. I’d also recommend looking into the new SelectionGroup property over AddSelectionGroup/Tuple, but both SelectionGroup and AddSelectionGroup/Tuple will only restrict selection. You won’t be able to use them to reach buttons you couldn’t reach before.