GFInputPlayback¶
API Reference / Standard / 类索引
- 路径:
addons/gf/standard/input/recording/gf_input_playback.gd - 模块:
Standard - 继承:
RefCounted - API:
public - 类别:运行时服务 (
runtime_service) - 首次版本:
3.17.0
抽象输入录制回放器。 按时间把 GFInputRecording 中的动作值写入 GFVirtualInputSource,适合测试、 复现、教程或 AI 控制桥接。它只回放抽象动作,不模拟具体键鼠或手柄事件。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 信号 | playback_started |
signal playback_started(recording: GFInputRecording) |
| 信号 | playback_stopped |
signal playback_stopped |
| 信号 | playback_finished |
signal playback_finished |
| 信号 | event_applied |
signal event_applied(event: Dictionary) |
| 属性 | recording |
var recording: GFInputRecording = null |
| 属性 | source |
var source: GFVirtualInputSource = null |
| 属性 | speed |
var speed: float = 1.0 |
| 属性 | loop |
var loop: bool = false |
| 属性 | respect_recorded_player_index |
var respect_recorded_player_index: bool = false |
| 属性 | is_playing |
var is_playing: bool = false |
| 属性 | elapsed_seconds |
var elapsed_seconds: float = 0.0 |
| 方法 | start |
func start( next_recording: GFInputRecording, next_source: GFVirtualInputSource, restart: bool = true ) -> bool: |
| 方法 | stop |
func stop(clear_source: bool = false) -> void: |
| 方法 | reset |
func reset() -> void: |
| 方法 | tick |
func tick(delta: float) -> int: |
| 方法 | seek |
func seek(time_seconds: float) -> void: |
| 方法 | is_finished |
func is_finished() -> bool: |
| 方法 | get_debug_snapshot |
func get_debug_snapshot() -> Dictionary: |
信号¶
playback_started¶
- API:
public
回放开始。
参数:
| 名称 | 说明 |
|---|---|
recording |
回放录制。 |
playback_stopped¶
- API:
public
回放停止。
playback_finished¶
- API:
public
回放自然完成。
event_applied¶
- API:
public
一个录制事件已被应用。
参数:
| 名称 | 说明 |
|---|---|
event |
事件副本。 |
结构:
event: Dictionary,包含 time_seconds、action_id、value、player_index、source_id 和 metadata。
属性¶
recording¶
- API:
public
当前录制。
source¶
- API:
public
目标虚拟输入源。
speed¶
- API:
public
回放速度倍率。
loop¶
- API:
public
到达末尾后是否循环。
respect_recorded_player_index¶
- API:
public
为 true 时,事件带 player_index 时会写入对应玩家。
is_playing¶
- API:
public
当前是否正在播放。
elapsed_seconds¶
- API:
public
当前回放时间,单位秒。
方法¶
start¶
- API:
public
func start( next_recording: GFInputRecording, next_source: GFVirtualInputSource, restart: bool = true ) -> bool:
开始回放。
参数:
| 名称 | 说明 |
|---|---|
next_recording |
要回放的录制。 |
next_source |
目标虚拟输入源。 |
restart |
是否从头开始。 |
返回:成功开始时返回 true。
stop¶
- API:
public
停止回放。
参数:
| 名称 | 说明 |
|---|---|
clear_source |
是否清空目标虚拟输入源。 |
reset¶
- API:
public
重置到起点。
tick¶
- API:
public
推进回放并应用到期事件。
参数:
| 名称 | 说明 |
|---|---|
delta |
时间增量,单位秒。 |
返回:本次应用的事件数量。
seek¶
- API:
public
跳转到指定时间。
参数:
| 名称 | 说明 |
|---|---|
time_seconds |
目标时间,单位秒。 |
is_finished¶
- API:
public
检查是否已到达末尾。
返回:到达末尾时返回 true。
get_debug_snapshot¶
- API:
public
获取调试快照。
返回:调试快照。
结构:
return: Dictionary,包含 is_playing、elapsed_seconds、speed、loop、respect_recorded_player_index、next_event_index、event_count 和 source_id。