跳转至

GFInputTrigger

API Reference / Standard / 类索引

  • 路径:addons/gf/standard/input/triggers/gf_input_trigger.gd
  • 模块:Standard
  • 继承:Resource
  • API:public
  • 类别:协议与扩展点 (protocol)
  • 首次版本:3.17.0

输入动作触发器基类。 触发器只决定“原始输入活跃后何时视为动作活跃”,不修改输入值。运行时状态由 GFInputMappingUtility 传入的 Dictionary 保存,因此同一资源可被多个上下文复用。

成员概览

类型 名称 签名
枚举 TriggerState enum TriggerState
方法 reset_trigger_state func reset_trigger_state(state: Dictionary) -> void:
方法 prepare_runtime func prepare_runtime( _action_id: StringName, _input_runtime: Object, _player_index: int, _state: Dictionary ) -> void:
方法 update func update(raw_active: bool, _value: Variant, _delta: float, _state: Dictionary) -> TriggerState:
方法 duplicate_trigger func duplicate_trigger() -> GFInputTrigger:

枚举

TriggerState

  • API:public
enum TriggerState { ## 输入未达到触发条件。 INACTIVE, ## 输入正在等待触发条件,例如长按计时中。 ONGOING, ## 输入已满足触发条件。 TRIGGERED, }

触发器本次更新后的动作状态。

方法

reset_trigger_state

  • API:public
func reset_trigger_state(state: Dictionary) -> void:

重置运行时状态。

参数:

名称 说明
state 由调用方保存的状态字典。

结构:

  • state: Dictionary,由输入运行时为当前 trigger 实例持有。

prepare_runtime

  • API:public
func prepare_runtime( _action_id: StringName, _input_runtime: Object, _player_index: int, _state: Dictionary ) -> void:

更新前注入运行时上下文。

参数:

名称 说明
_action_id 当前动作标识。
_input_runtime 输入映射运行时。
_player_index 玩家索引;全局动作传 -1。
_state 该触发器的运行时状态。

结构:

  • _state: Dictionary,由输入运行时为当前 trigger 实例持有。

update

  • API:public
func update(raw_active: bool, _value: Variant, _delta: float, _state: Dictionary) -> TriggerState:

更新触发器状态。

参数:

名称 说明
raw_active 原始输入是否活跃。
_value 当前动作值。
_delta 本次更新经过的秒数;事件驱动刷新时可能为 0。
_state 该触发器的运行时状态。

返回:触发状态。

结构:

  • _value: Variant,由当前输入映射产生的动作值。
  • _state: Dictionary,由输入运行时为当前 trigger 实例持有。

duplicate_trigger

  • API:public
func duplicate_trigger() -> GFInputTrigger:

创建运行时副本。

返回:触发器副本。