GFInputConflictAnalyzer¶
API Reference / Standard / 类索引
- 路径:
addons/gf/standard/input/rebinding/gf_input_conflict_analyzer.gd - 模块:
Standard - 继承:
RefCounted - API:
public - 类别:运行时服务 (
runtime_service) - 首次版本:
3.17.0
输入上下文冲突分析工具。 只读取输入资源与可选重映射配置,不参与运行时输入分发。适合设置界面、 编辑器工具或测试在应用重绑定前检查同一输入是否被多个抽象动作占用。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 方法 | analyze_context |
static func analyze_context( context: GFInputContext, remap_config: GFInputRemapConfig = null, include_non_remappable: bool = true ) -> Array[Dictionary]: |
| 方法 | analyze_contexts |
static func analyze_contexts( contexts: Array[GFInputContext], remap_config: GFInputRemapConfig = null, include_cross_context: bool = false, include_non_remappable: bool = true ) -> Array[Dictionary]: |
| 方法 | build_rebind_report |
static func build_rebind_report( contexts: Array[GFInputContext], remap_config: GFInputRemapConfig = null, include_cross_context: bool = false, include_non_remappable: bool = true ) -> Dictionary: |
| 方法 | collect_binding_items |
static func collect_binding_items( contexts: Array[GFInputContext], remap_config: GFInputRemapConfig = null, include_non_remappable: bool = true ) -> Array[Dictionary]: |
| 方法 | get_event_signature |
static func get_event_signature(input_event: InputEvent, match_device: bool = false) -> String: |
| 方法 | are_events_equivalent |
static func are_events_equivalent( left_event: InputEvent, right_event: InputEvent, left_match_device: bool = false, right_match_device: bool = false ) -> bool: |
方法¶
analyze_context¶
- API:
public
static func analyze_context( context: GFInputContext, remap_config: GFInputRemapConfig = null, include_non_remappable: bool = true ) -> Array[Dictionary]:
分析单个上下文内的绑定冲突。
参数:
| 名称 | 说明 |
|---|---|
context |
输入上下文。 |
remap_config |
可选重映射配置。 |
include_non_remappable |
是否包含不可重绑动作或绑定。 |
返回:冲突列表。
结构:
return: Array,包含冲突 Dictionary 记录,字段包括 context/action/binding id、other_* id、event_text、signature 和 items。
analyze_contexts¶
- API:
public
static func analyze_contexts( contexts: Array[GFInputContext], remap_config: GFInputRemapConfig = null, include_cross_context: bool = false, include_non_remappable: bool = true ) -> Array[Dictionary]:
分析多个上下文的绑定冲突。
参数:
| 名称 | 说明 |
|---|---|
contexts |
输入上下文列表。 |
remap_config |
可选重映射配置。 |
include_cross_context |
是否报告跨上下文冲突。 |
include_non_remappable |
是否包含不可重绑动作或绑定。 |
返回:冲突列表。
结构:
contexts: Array[GFInputContext] of contexts to analyze.return: Array,包含冲突 Dictionary 记录,字段包括 context/action/binding id、other_* id、event_text、signature 和 items。
build_rebind_report¶
- API:
public
static func build_rebind_report( contexts: Array[GFInputContext], remap_config: GFInputRemapConfig = null, include_cross_context: bool = false, include_non_remappable: bool = true ) -> Dictionary:
构建重绑定诊断报告。
参数:
| 名称 | 说明 |
|---|---|
contexts |
输入上下文列表。 |
remap_config |
可选重映射配置。 |
include_cross_context |
是否报告跨上下文冲突。 |
include_non_remappable |
是否包含不可重绑动作或绑定。 |
返回:包含条目与冲突的报告。
结构:
contexts: Array[GFInputContext] of contexts to analyze.return: Dictionary,包含 ok、context_count、item_count、conflict_count、items 和 conflicts。
collect_binding_items¶
- API:
public
static func collect_binding_items( contexts: Array[GFInputContext], remap_config: GFInputRemapConfig = null, include_non_remappable: bool = true ) -> Array[Dictionary]:
收集上下文中的有效绑定条目。
参数:
| 名称 | 说明 |
|---|---|
contexts |
输入上下文列表。 |
remap_config |
可选重映射配置。 |
include_non_remappable |
是否包含不可重绑动作或绑定。 |
返回:绑定条目列表。
结构:
contexts: Array[GFInputContext] of contexts to inspect.return: Array,包含 item Dictionary 记录,字段包括 context/action/binding id、event、event_text、event_key、signature、device_scope 和 match_device。
get_event_signature¶
- API:
public
获取输入事件的稳定签名。
参数:
| 名称 | 说明 |
|---|---|
input_event |
输入事件。 |
match_device |
是否把设备 ID 纳入签名。 |
返回:签名字符串;空事件返回空字符串。
are_events_equivalent¶
- API:
public
static func are_events_equivalent( left_event: InputEvent, right_event: InputEvent, left_match_device: bool = false, right_match_device: bool = false ) -> bool:
判断两个输入事件是否会在绑定层互相冲突。
参数:
| 名称 | 说明 |
|---|---|
left_event |
左侧输入事件。 |
right_event |
右侧输入事件。 |
left_match_device |
左侧是否要求设备精确匹配。 |
right_match_device |
右侧是否要求设备精确匹配。 |
返回:冲突返回 true。