我正在制作一个游戏,与我的朋友一起玩,该游戏使用他人脚本/机制并且在这些脚本中具有设置为特定密钥的密钥绑定;Q";我的一个朋友在控制台上玩,他不能做那个动作,这是我游戏的主要核心。
我到处搜索过,没有发现任何关于VirtualUser的信息,但它只适用于命令栏。
还有其他方法可以做到这一点吗?
无法模拟按键。
但是,您可以绑定按键时执行的逻辑,也可以通过控制器输入触发。请查看ContextActionService:BindAction的文档。
BindAction函数接受几个参数:
- actionName:唯一标识操作的字符串
- functionToBind:在调度该操作时将调用的函数
- createTouchButton:布尔值,当为true时,将在手机和平板电脑等触摸设备上创建按钮
- inputTypes:要侦听的所有不同键的元组
因此,您可以使用它将多个输入(包括控制器输入(绑定到与按下字母q
时相同的逻辑。例如
local ContextActionService = game:GetService("ContextActionService")
local function handleAction(actionName, inputState, inputObject)
if actionName == "DoThing" then
if inputState == Enum.UserInputState.Begin then
print("Time to do the thing")
end
end
end
-- Do a thing when the user presses q or the Y Button on a controller
ContextActionService:BindAction("DoThing", handleAction, true, Enum.KeyCode.Q, Enum.KeyCode.ButtonY)
有关更多信息,请参阅。。。
- 所有KeyCodes的列表
- 所有UserInputStates的列表