Во-первых, я не хочу использовать объект Mouse, поэтому MouseButton1Click не подходит. Я хочу использовать UserInputService, но мое решение все еще кажется нечистым.
ModuleScript:
function GuiModule.Click(Input)
if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then
return true
else
return false
end
end
LocalScript:
local GuiModule = require(game.Players.LocalPlayer.PlayerGui.GuiModule)
Button.InputEnded:Connect(function(Input)
if GuiModule.Click(Input) then --I really have to write an if statement for every InputEnded event?
print("Button clicked")
end
end)
В идеале мне нужно что-то вроде этого, где .Clicked - это настраиваемое событие, использующее объектно-ориентированное программирование в модульном скрипте. Я изучил метатаблицы и метафункции, но не могу полностью asp реализовать их функции, чтобы реализовать это, если это возможно.
local GuiModule = require(game.Players.LocalPlayer.PlayerGui.GuiModule)
Button.Clicked:Connect(function(Input)
print("Button clicked")
end)