跳转至

GFInputRemapConfig

API Reference / Standard / 类索引

  • 路径:addons/gf/standard/input/rebinding/gf_input_remap_config.gd
  • 模块:Standard
  • 继承:Resource
  • API:public
  • 类别:资源定义 (resource_definition)
  • 首次版本:3.17.0

输入重映射配置。 只保存玩家或项目层覆盖过的输入事件,默认绑定仍来自 GFInputContext。

成员概览

类型 名称 签名
属性 remapped_events var remapped_events: Dictionary = {}
属性 custom_data var custom_data: Dictionary = {}
方法 set_binding func set_binding( context_id: StringName, action_id: StringName, binding_index: int, input_event: InputEvent ) -> void:
方法 unbind func unbind(context_id: StringName, action_id: StringName, binding_index: int) -> void:
方法 clear_binding func clear_binding(context_id: StringName, action_id: StringName, binding_index: int) -> void:
方法 has_binding func has_binding(context_id: StringName, action_id: StringName, binding_index: int) -> bool:
方法 get_bound_event_or_null func get_bound_event_or_null(context_id: StringName, action_id: StringName, binding_index: int) -> InputEvent:
方法 set_custom_data func set_custom_data(key: Variant, value: Variant) -> void:
方法 get_custom_data func get_custom_data(key: Variant, default_value: Variant = null) -> Variant:
方法 to_dict func to_dict() -> Dictionary:
方法 apply_dict func apply_dict(data: Dictionary) -> void:
方法 from_dict static func from_dict(data: Dictionary) -> GFInputRemapConfig:
方法 duplicate_config func duplicate_config() -> GFInputRemapConfig:

属性

remapped_events

  • API:public
var remapped_events: Dictionary = {}

重绑定输入。结构为 context_id -> action_id -> binding_index -> InputEvent 或 null。

结构:

  • remapped_events: Dictionary,按 context_id、action_id、binding_index 分层索引,值为 InputEvent 或表示显式解绑的 null。

custom_data

  • API:public
var custom_data: Dictionary = {}

项目自定义数据。框架不解释该字段。

结构:

  • custom_data: Dictionary,项目持有的 profile 标签、设备元数据或 UI 状态。

方法

set_binding

  • API:public
func set_binding( context_id: StringName, action_id: StringName, binding_index: int, input_event: InputEvent ) -> void:

设置绑定覆盖。

参数:

名称 说明
context_id 上下文标识。
action_id 动作标识。
binding_index 绑定索引。
input_event 新输入事件;null 表示显式解绑。

unbind

  • API:public
func unbind(context_id: StringName, action_id: StringName, binding_index: int) -> void:

显式解绑某个绑定。

参数:

名称 说明
context_id 上下文标识。
action_id 动作标识。
binding_index 绑定索引。

clear_binding

  • API:public
func clear_binding(context_id: StringName, action_id: StringName, binding_index: int) -> void:

清除某个覆盖,使其回退到默认绑定。

参数:

名称 说明
context_id 上下文标识。
action_id 动作标识。
binding_index 绑定索引。

has_binding

  • API:public
func has_binding(context_id: StringName, action_id: StringName, binding_index: int) -> bool:

检查是否存在覆盖记录。显式解绑也会返回 true。

参数:

名称 说明
context_id 上下文标识。
action_id 动作标识。
binding_index 绑定索引。

返回:是否存在覆盖。

get_bound_event_or_null

  • API:public
func get_bound_event_or_null(context_id: StringName, action_id: StringName, binding_index: int) -> InputEvent:

获取覆盖输入事件。

参数:

名称 说明
context_id 上下文标识。
action_id 动作标识。
binding_index 绑定索引。

返回:覆盖事件;显式解绑或未覆盖时均可能返回 null,应先调用 has_binding() 区分。

set_custom_data

  • API:public
func set_custom_data(key: Variant, value: Variant) -> void:

设置自定义数据。

参数:

名称 说明
key 键。
value 值。

结构:

  • key: Variant,项目侧自定义数据键。
  • value: Variant,项目侧自定义数据值。

get_custom_data

  • API:public
func get_custom_data(key: Variant, default_value: Variant = null) -> Variant:

获取自定义数据。

参数:

名称 说明
key 键。
default_value 默认值。

返回:自定义数据。

结构:

  • key: Variant,项目侧自定义数据键。
  • default_value: Variant,key 不存在时返回的默认值。
  • return: Variant,自定义数据值或 default_value。

to_dict

  • API:public
func to_dict() -> Dictionary:

转换为可写入 JSON/存档的 Dictionary。

返回:重映射配置字典。

结构:

  • return: Dictionary,包含 remapped_events 和 custom_data;remapped_events 为 context_id -> action_id -> binding_index -> event record。

apply_dict

  • API:public
func apply_dict(data: Dictionary) -> void:

应用由 to_dict() 生成的重映射配置。

参数:

名称 说明
data 重映射配置字典。

结构:

  • data: Dictionary,包含 remapped_events 和 custom_data。

from_dict

  • API:public
static func from_dict(data: Dictionary) -> GFInputRemapConfig:

从 Dictionary 创建重映射配置。

参数:

名称 说明
data 重映射配置字典。

返回:新重映射配置。

结构:

  • data: Dictionary,包含 remapped_events 和 custom_data。

duplicate_config

  • API:public
func duplicate_config() -> GFInputRemapConfig:

复制重映射配置。

返回:深拷贝后的重映射配置。