首页 > 解决方案 > LuaU 脚本(Roblox),我怎样才能用脚本按下键

问题描述

一个例子就像

local E = game:GetService('UserInputService').SetKeyDown(Enum.KeyCode.E) 

但它当然不起作用,因为我不能用这个东西让我的游戏自己按 E,所以它需要更长的时间,如果你找到解决方案,你也可以做一个让它按下的地方吗?

标签: luascriptinguser-inputrobloxlua-userdata

解决方案


输入只能在客户端上注册,因此您必须在LocalScript. 有 2 个服务用于获取玩家的输入:-

这个例子展示了如何使用 UserInputService 来获取玩家的 LeftMouseButton 输入。

local UserInputService = game:GetService("UserInputService")
 
local function onInputBegan(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        print("The left mouse button has been pressed!")
    end
end
 
UserInputService.InputBegan:Connect(onInputBegan)

此示例正确显示了如何使用 ContextActionService 将用户输入绑定到上下文操作。上下文是装备的工具;行动是重新加载一些武器。

local ContextActionService = game:GetService("ContextActionService")
 
local ACTION_RELOAD = "Reload"
 
local tool = script.Parent
 
local function handleAction(actionName, inputState, inputObject)
    if actionName == ACTION_RELOAD and inputState == Enum.UserInputState.Begin then
        print("Reloading!")
    end
end
 
tool.Equipped:Connect(function ()
    ContextActionService:BindAction(ACTION_RELOAD, handleAction, true, Enum.KeyCode.R)
end)

您应该查看 Wiki 页面。


推荐阅读