【发布时间】:2021-11-03 14:48:31
【问题描述】:
举个例子
local E = game:GetService('UserInputService').SetKeyDown(Enum.KeyCode.E)
但它当然不起作用,因为我不能用这个东西让我的游戏自己按 E,所以它需要更长的时间,如果你找到解决方案,你也可以在它按下的地方做一个吗?
【问题讨论】:
标签: lua scripting user-input roblox lua-userdata
举个例子
local E = game:GetService('UserInputService').SetKeyDown(Enum.KeyCode.E)
但它当然不起作用,因为我不能用这个东西让我的游戏自己按 E,所以它需要更长的时间,如果你找到解决方案,你也可以在它按下的地方做一个吗?
【问题讨论】:
标签: lua scripting user-input roblox lua-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 页面。
【讨论】:
听起来您想编写一个脚本来按下E 键,但这是不可能的。
您可以将操作绑定到按键,就像 Giant427 提供的示例一样,您也可以手动调用绑定到这些操作的函数,但您不能编写脚本来触发键盘输入。
【讨论】: