Roblox - Создание настраиваемого события для обнаружения щелчков мыши? - PullRequest
0 голосов
/ 01 августа 2020

Во-первых, я не хочу использовать объект 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)

1 Ответ

1 голос
/ 02 августа 2020

Попробуйте вместо этого Activated event . Он автоматически обрабатывает различные типы ввода, поэтому вам не нужно определять, вводится ли это мышью или сенсорным экраном.

Button.Activated:Connect(function()
    print("Button clicked or tapped")
end)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...