Так уж получилось что был у меня интерфейс в котором кнопки генерировались скриптом и.. последняя кнопка как то странно себя вела. Иногда нажималась, но чаще нет. При этом эффект over работал в 100%, т.е. выходит кнопка активна!
Долго пытался понять что не так с генерацией кнопок, пока не пришла в голову мысль — а вдруг она просто перекрыта не видимым интерфейсом? В итоге подсказали мне про интересную команду .
GetGuiObjectsAtPosition — Принимает позицию на экране и возвращает список всех экземпляров GuiObject , занимающих эту позицию на экране, отсортированных в порядке их появления на экране сверху вниз.
В итоге написал небольшой локальный скрипт и поместил его в StarterCharacterScripts
-- https://create.roblox.com/docs/reference/engine/classes/BasePlayerGui#GetGuiObjectsAtPosition -- GetGuiObjectsAtPosition local UIS = game:GetService("UserInputService") local Player = game:GetService("Players") local plr = Player.LocalPlayer local PlayerGui = plr.PlayerGui UIS.InputEnded:Connect(function(input, clickBtn) warn("========================================") if input.UserInputType == Enum.UserInputType.MouseButton1 then local pos = input.Position local guisAtPosition = PlayerGui:GetGuiObjectsAtPosition(pos.X, pos.Y) warn(guisAtPosition) for k,v in pairs(guisAtPosition) do print(k,v:GetFullName()) end end warn("========================================") end)
И вот такой маленький скрипт мне и показал, что я оказался прав в догадках. Над кнопкой был не видимый Frame.
Подправил его размеры чтобы не заползало на кнопки и.. вуаля! Всё заработало как положено.