InputManager
描述:
InputManager
是一个用于管理输入上下文和动作的类。可以通过创建输入上下文和动作,然后将它们添加到输入管理器中,来实现输入事件的监听和处理。可以通过调用 pushContext
和 popContext
方法来激活和停用特定组合的输入上下文。在触发事件时,可以通过注册全局输入事件监听器来处理输入事件。
类对象:InputManager Class。
用法示例:
local InputManager = require("InputManager")
local inputManager = InputManager.CreateManager({
{
name = "context1",
actions = {
{
name = "action1",
trigger = 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
参数:
参数名 | 类型 | 描述 |
---|---|---|
contextNames | string | {string} |
返回值:
返回类型 | 描述 |
---|---|
boolean | 上下文是否成功添加和生效。 |
popContext
类型: 函数。
描述:
从上下文栈中移除并停止当前栈顶在生效的上下文。然后激活前一组上下文。
签名:
popContext: function(self: InputManager, count?: number): boolean
参数:
参数名 | 类型 | 描述 |
---|---|---|
count | number | [可选] 要移除的上下文数量。默认为1。 |
返回值:
返回类型 | 描述 |
---|---|
boolean | 栈顶上下文是否成功移除。 |
emitKeyDown
类型: 函数。
描述:
发送按键按下事件到输入系统以模拟输入。
签名:
emitKeyDown: function(self: InputManager, keyName: KeyName)
参数:
参数名 | 类型 | 描述 |
---|---|---|
keyName | KeyName | 键的名称。 |
emitKeyUp
类型: 函数。
描述:
发送按键释放事件到输入系统以模拟输入。
签名:
emitKeyUp: function(self: InputManager, keyName: KeyName)
参数:
参数名 | 类型 | 描述 |
---|---|---|
keyName | KeyName | 键的名称。 |
emitButtonDown
类型: 函数。
描述:
发送按键按住事件到输入系统以模拟输入。
签名:
emitButtonDown: function(self: InputManager, buttonName: ButtonName, controllerId?: number)
参数:
参数名 | 类型 | 描述 |
---|---|---|
buttonName | ButtonName | 按钮的名称。 |
controllerId | number | [可选] 游戏手柄控制器的ID。默认为0。 |
emitButtonUp
类型: 函数。
描述:
发送按键释放事件到输入系统以模拟输入。
签名:
emitButtonUp: function(self: InputManager, buttonName: ButtonName, controllerId?: number)
参数:
参数名 | 类型 | 描述 |
---|---|---|
buttonName | ButtonName | 按钮的名称。 |
controllerId | number | [optional] 游戏手柄控制器的ID。默认为0。 |
emitAxis
类型: 函数。
描述:
发送摇杆变动的事件到输入系统以模拟输入。
签名:
emitAxis: function(self: InputManager, axisName: AxisName, value: number, controllerId?: number)
参数:
参数名 | 类型 | 描述 |
---|---|---|
axisName | AxisName | 轴的名称。 |
value | number | 轴的值,取值范围为-1到1。 |
controllerId | number | [optional] 游戏手柄控制器的ID。默认为0。 |
destroy
类型: 函数。
描述:
销毁输入管理器并清除在生效的输入事件监听器。
签名:
destroy: function(self: InputManager)