跳到主要内容

InputManager

描述:

  InputManager 是一个用于管理输入上下文和动作的类。可以通过创建输入上下文和动作,然后将它们添加到输入管理器中,来实现输入事件的监听和处理。可以通过调用 pushContextpopContext 方法来激活和停用特定组合的输入上下文。在触发事件时,可以通过注册全局输入事件监听器来处理输入事件。

类对象:InputManager Class

用法示例:

local InputManager = require("InputManager")
local inputManager = InputManager.CreateManager({
context1 = {
action1 = Trigger.KeyDown("W"),
},
})
-- 激活上下文 context1
inputManager:pushContext("context1")
-- 要监听的输入事件名需要加上 `Input.` 前缀
node:gslot("Input.action1", function()
print("action1 triggered")
end)
-- 从上下文栈中删除 context1
inputManager:popContext()
-- 销毁输入管理器
inputManager:destroy()

getNode

类型: 函数。

描述:

  获取当前输入系统使用的场景节点。该节点用于接收输入事件。它在创建后,如果没有被添加到指定的父节点,会在稍后被自动添加到 Director.entry 中。

签名:

getNode: function(self: InputManager): Node.Type

返回值:

返回类型描述
Node输入系统的场景节点。

pushContext

类型: 函数。

描述:

  将指定名称的上下文添加到上下文栈中。会暂时禁用之前生效的上下文,然后激活新上下文中会触发的动作和事件。

签名:

pushContext: function(self: InputManager, contextNames: string | {string}): boolean

参数:

参数名类型描述
contextNamesstring{string}

返回值:

返回类型描述
boolean上下文是否成功添加和生效。

popContext

类型: 函数。

描述:

  从上下文栈中移除并停止当前栈顶在生效的上下文。然后激活前一组上下文。

签名:

popContext: function(self: InputManager, count?: number): boolean

参数:

参数名类型描述
countnumber[可选] 要移除的上下文数量。默认为1。

返回值:

返回类型描述
boolean栈顶上下文是否成功移除。

emitKeyDown

类型: 函数。

描述:

  发送按键按下事件到输入系统以模拟输入。

签名:

emitKeyDown: function(self: InputManager, keyName: KeyName)

参数:

参数名类型描述
keyNameKeyName键的名称。

emitKeyUp

类型: 函数。

描述:

  发送按键释放事件到输入系统以模拟输入。

签名:

emitKeyUp: function(self: InputManager, keyName: KeyName)

参数:

参数名类型描述
keyNameKeyName键的名称。

emitButtonDown

类型: 函数。

描述:

  发送按键按住事件到输入系统以模拟输入。

签名:

emitButtonDown: function(self: InputManager, buttonName: ButtonName, controllerId?: number)

参数:

参数名类型描述
buttonNameButtonName按钮的名称。
controllerIdnumber[可选] 游戏手柄控制器的ID。默认为0。

emitButtonUp

类型: 函数。

描述:

  发送按键释放事件到输入系统以模拟输入。

签名:

emitButtonUp: function(self: InputManager, buttonName: ButtonName, controllerId?: number)

参数:

参数名类型描述
buttonNameButtonName按钮的名称。
controllerIdnumber[optional] 游戏手柄控制器的ID。默认为0。

emitAxis

类型: 函数。

描述:

  发送摇杆变动的事件到输入系统以模拟输入。

签名:

emitAxis: function(self: InputManager, axisName: AxisName, value: number, controllerId?: number)

参数:

参数名类型描述
axisNameAxisName轴的名称。
valuenumber轴的值,取值范围为-1到1。
controllerIdnumber[optional] 游戏手柄控制器的ID。默认为0。

destroy

类型: 函数。

描述:

  销毁输入管理器并清除在生效的输入事件监听器。

签名:

destroy: function(self: InputManager)