GFNetworkHistoryBuffer¶
API Reference / Network / 类索引
- 路径:
addons/gf/extensions/network/snapshot/gf_network_history_buffer.gd - 模块:
Network - 继承:
RefCounted - API:
public - 类别:运行时句柄 (
runtime_handle) - 首次版本:
3.17.0
按 tick 保存网络快照的环形历史。 用于插值、重放、状态对账或项目自定义同步流程;不会自动执行预测、回滚或冲突解决。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 属性 | capacity |
var capacity: int = 120 |
| 方法 | add_snapshot |
func add_snapshot(snapshot: GFNetworkSnapshot) -> bool: |
| 方法 | add_state |
func add_state( tick: int, state: Dictionary, peer_id: int = -1, metadata: Dictionary = {} ) -> GFNetworkSnapshot: |
| 方法 | has_snapshot |
func has_snapshot(tick: int) -> bool: |
| 方法 | get_snapshot |
func get_snapshot(tick: int) -> GFNetworkSnapshot: |
| 方法 | get_latest_snapshot |
func get_latest_snapshot() -> GFNetworkSnapshot: |
| 方法 | get_earliest_snapshot |
func get_earliest_snapshot() -> GFNetworkSnapshot: |
| 方法 | get_closest_snapshot |
func get_closest_snapshot(tick: int, prefer_older: bool = true) -> GFNetworkSnapshot: |
| 方法 | get_snapshots_between |
func get_snapshots_between( from_tick: int, to_tick: int, include_bounds: bool = true ) -> Array[GFNetworkSnapshot]: |
| 方法 | get_surrounding_snapshots |
func get_surrounding_snapshots(tick: int) -> Dictionary: |
| 方法 | get_ticks |
func get_ticks() -> PackedInt64Array: |
| 方法 | prune_before |
func prune_before(tick: int) -> int: |
| 方法 | clear |
func clear() -> void: |
| 方法 | size |
func size() -> int: |
| 方法 | get_debug_snapshot |
func get_debug_snapshot() -> Dictionary: |
属性¶
capacity¶
- API:
public
最大保存快照数量。小于等于 0 表示不限制。
方法¶
add_snapshot¶
- API:
public
添加快照。
参数:
| 名称 | 说明 |
|---|---|
snapshot |
快照。 |
返回:添加成功返回 true。
add_state¶
- API:
public
func add_state( tick: int, state: Dictionary, peer_id: int = -1, metadata: Dictionary = {} ) -> GFNetworkSnapshot:
添加状态字典并返回生成的快照。
参数:
| 名称 | 说明 |
|---|---|
tick |
快照 tick。 |
state |
状态字典。 |
peer_id |
来源 peer。 |
metadata |
元数据。 |
返回:新快照。
结构:
state: Dictionary[StringName|String, Variant],保存项目自定义同步状态。metadata: Dictionary,保存项目自定义快照元数据。
has_snapshot¶
- API:
public
检查指定 tick 是否存在快照。
参数:
| 名称 | 说明 |
|---|---|
tick |
快照 tick。 |
返回:存在返回 true。
get_snapshot¶
- API:
public
获取指定 tick 的快照副本。
参数:
| 名称 | 说明 |
|---|---|
tick |
快照 tick。 |
返回:快照副本;不存在时返回 null。
get_latest_snapshot¶
- API:
public
获取最新快照副本。
返回:最新快照;不存在时返回 null。
get_earliest_snapshot¶
- API:
public
获取最早快照副本。
返回:最早快照;不存在时返回 null。
get_closest_snapshot¶
- API:
public
获取最接近指定 tick 的快照副本。
参数:
| 名称 | 说明 |
|---|---|
tick |
查询 tick。 |
prefer_older |
距离相同时是否优先旧快照。 |
返回:快照副本;不存在时返回 null。
get_snapshots_between¶
- API:
public
func get_snapshots_between( from_tick: int, to_tick: int, include_bounds: bool = true ) -> Array[GFNetworkSnapshot]:
获取指定 tick 范围内的快照副本。
参数:
| 名称 | 说明 |
|---|---|
from_tick |
起始 tick。 |
to_tick |
结束 tick。 |
include_bounds |
是否包含边界 tick。 |
返回:按 tick 升序排列的快照副本。
结构:
return: Array[GFNetworkSnapshot],按 tick 升序排列的快照副本。
get_surrounding_snapshots¶
- API:
public
获取包围指定 tick 的快照副本。
参数:
| 名称 | 说明 |
|---|---|
tick |
查询 tick。 |
返回:字典,包含 exact、previous、next 三个可选快照。
结构:
return: Dictionary,包含 exact、previous、next,值为 GFNetworkSnapshot 或 null。
get_ticks¶
- API:
public
获取已保存 tick 列表。
返回:tick 列表。
prune_before¶
- API:
public
删除指定 tick 之前的快照。
参数:
| 名称 | 说明 |
|---|---|
tick |
保留起点 tick。 |
返回:删除数量。
clear¶
- API:
public
清空历史。
size¶
- API:
public
获取快照数量。
返回:快照数量。
get_debug_snapshot¶
- API:
public
获取调试快照。
返回:调试信息字典。
结构:
return: Dictionary,包含 capacity、size、earliest_tick、latest_tick。