GFPlatformAdapter¶
API Reference / Standard / 类索引
- 路径:
addons/gf/standard/platform/gf_platform_adapter.gd - 模块:
Standard - 继承:
RefCounted - API:
public - 类别:协议与扩展点 (
protocol) - 首次版本:
9.0.0
外部平台 adapter 协议。 Steam、微信小游戏、主机平台或自建平台实现应继承该类型,把具体 SDK 回调 转换为 GF 的上下文、生命周期事件和桥接结果。该基类不依赖任何平台 SDK。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 信号 | state_changed |
signal state_changed(previous_state: State, current_state: State) |
| 信号 | context_changed |
signal context_changed(context: GFPlatformRuntimeContext) |
| 信号 | lifecycle_event |
signal lifecycle_event(event: GFPlatformLifecycleEvent) |
| 枚举 | State |
enum State |
| 方法 | configure |
func configure( adapter_id: StringName, platform_id: StringName, contract_ids: PackedStringArray, initial_context: GFPlatformRuntimeContext = null ) -> bool: |
| 方法 | get_adapter_id |
func get_adapter_id() -> StringName: |
| 方法 | get_platform_id |
func get_platform_id() -> StringName: |
| 方法 | get_contract_ids |
func get_contract_ids() -> PackedStringArray: |
| 方法 | supports_contract |
func supports_contract(contract_id: StringName) -> bool: |
| 方法 | get_state |
func get_state() -> State: |
| 方法 | is_ready |
func is_ready() -> bool: |
| 方法 | initialize |
func initialize(options: Dictionary = {}) -> GFAsyncCompletion: |
| 方法 | get_context |
func get_context() -> GFPlatformRuntimeContext: |
| 方法 | invoke |
func invoke(request: GFPlatformBridgeRequest) -> GFPlatformRequestHandle: |
| 方法 | poll |
func poll(delta: float) -> void: |
| 方法 | shutdown |
func shutdown() -> void: |
| 方法 | get_debug_snapshot |
func get_debug_snapshot() -> Dictionary: |
| 方法 | _initialize |
func _initialize(_options: Dictionary) -> void: |
| 方法 | _dispatch |
func _dispatch(_request: GFPlatformBridgeRequest, _handle: GFPlatformRequestHandle) -> bool: |
| 方法 | _poll |
func _poll(_delta: float) -> void: |
| 方法 | _cancel_request |
func _cancel_request(_handle: GFPlatformRequestHandle, _reason: StringName) -> void: |
| 方法 | _shutdown |
func _shutdown() -> void: |
| 方法 | _complete_initialization |
func _complete_initialization(context: GFPlatformRuntimeContext) -> bool: |
| 方法 | _fail_initialization |
func _fail_initialization(error: String, metadata: Dictionary = {}) -> bool: |
| 方法 | _publish_context |
func _publish_context(context: GFPlatformRuntimeContext) -> bool: |
| 方法 | _publish_lifecycle_event |
func _publish_lifecycle_event(event: GFPlatformLifecycleEvent) -> bool: |
| 方法 | _succeed_request |
func _succeed_request( handle: GFPlatformRequestHandle, value: Variant = null, status: StringName = &"ok", metadata: Dictionary = {} ) -> bool: |
| 方法 | _fail_request |
func _fail_request( handle: GFPlatformRequestHandle, status: StringName, error: String, metadata: Dictionary = {} ) -> bool: |
信号¶
state_changed¶
- API:
public - 首次版本:
9.0.0
Adapter 状态变化后发出。
参数:
| 名称 | 说明 |
|---|---|
previous_state |
变化前状态。 |
current_state |
变化后状态。 |
context_changed¶
- API:
public - 首次版本:
9.0.0
平台运行时上下文变化后发出。
参数:
| 名称 | 说明 |
|---|---|
context |
新上下文副本。 |
lifecycle_event¶
- API:
public - 首次版本:
9.0.0
收到平台生命周期事件后发出。
参数:
| 名称 | 说明 |
|---|---|
event |
生命周期事件副本。 |
枚举¶
State¶
- API:
public - 首次版本:
9.0.0
enum State {
## 尚未初始化。
CREATED,
## 正在执行 adapter 初始化。
INITIALIZING,
## 可接受平台请求。
READY,
## 初始化失败。
FAILED,
## 已关闭且不可重新使用。
SHUTDOWN,
}
Adapter 生命周期状态。
方法¶
configure¶
- API:
public - 首次版本:
9.0.0
func configure( adapter_id: StringName, platform_id: StringName, contract_ids: PackedStringArray, initial_context: GFPlatformRuntimeContext = null ) -> bool:
配置 adapter 身份和支持的桥接契约。 配置只允许在 CREATED 状态执行,防止运行期间改变路由身份。
参数:
| 名称 | 说明 |
|---|---|
adapter_id |
Adapter 稳定标识。 |
platform_id |
平台稳定标识。 |
contract_ids |
支持的桥接契约 ID。 |
initial_context |
可选初始上下文。 |
返回:配置成功返回 true。
get_adapter_id¶
- API:
public - 首次版本:
9.0.0
获取 adapter ID。
返回:Adapter ID。
get_platform_id¶
- API:
public - 首次版本:
9.0.0
获取平台 ID。
返回:平台 ID。
get_contract_ids¶
- API:
public - 首次版本:
9.0.0
获取支持的桥接契约 ID 副本。
返回:排序去重后的契约 ID。
supports_contract¶
- API:
public - 首次版本:
9.0.0
检查 adapter 是否支持桥接契约。
参数:
| 名称 | 说明 |
|---|---|
contract_id |
桥接契约 ID。 |
返回:已声明支持时返回 true。
get_state¶
- API:
public - 首次版本:
9.0.0
获取当前状态。
返回:Adapter 状态。
is_ready¶
- API:
public - 首次版本:
9.0.0
检查 adapter 是否可接受请求。
返回:READY 状态返回 true。
initialize¶
- API:
public - 首次版本:
9.0.0
初始化 adapter。 同一次初始化期间重复调用会返回同一个 completion;READY 状态返回立即成功的 completion。FAILED 或 SHUTDOWN 状态不会隐式重试。
参数:
| 名称 | 说明 |
|---|---|
options |
Adapter 定义的初始化选项。 |
返回:初始化完成源,成功结果为 GFPlatformRuntimeContext。
结构:
options: Dictionary adapter-defined initialization options.
get_context¶
- API:
public - 首次版本:
9.0.0
获取运行时上下文副本。
返回:平台运行时上下文副本。
invoke¶
- API:
public - 首次版本:
9.0.0
发起桥接请求。 该入口统一做状态、请求身份和契约支持检查,具体 adapter 只重写 _dispatch。
参数:
| 名称 | 说明 |
|---|---|
request |
平台桥接请求。 |
返回:一次性请求句柄。
poll¶
- API:
public - 首次版本:
9.0.0
推进需要 callback pump 的平台 SDK。
参数:
| 名称 | 说明 |
|---|---|
delta |
未受游戏暂停和时间缩放影响的帧间隔。 |
shutdown¶
- API:
public - 首次版本:
9.0.0
关闭 adapter 并释放平台资源。 SHUTDOWN 为终态;需要重新连接时应创建新 adapter 实例。
get_debug_snapshot¶
- API:
public - 首次版本:
9.0.0
获取 adapter 调试快照。
返回:Adapter 身份、状态、契约与上下文字典。
结构:
return: Dictionary with adapter_id, platform_id, state, state_name, contract_ids, and context.
_initialize¶
- API:
protected - 首次版本:
9.0.0
执行平台初始化。 异步实现应在回调中调用 _complete_initialization 或 _fail_initialization; 基类实现立即使用当前上下文完成。
参数:
| 名称 | 说明 |
|---|---|
_options |
Adapter 初始化选项。 |
结构:
_options: Dictionary adapter-defined initialization options.
_dispatch¶
- API:
protected - 首次版本:
9.0.0
派发平台请求。 实现可同步或异步调用 _succeed_request / _fail_request。返回 false 表示请求 未被接受,基类会生成 dispatch_rejected 终态。
参数:
| 名称 | 说明 |
|---|---|
_request |
请求副本。 |
_handle |
由基类拥有的请求句柄。 |
返回:请求被接受时返回 true。
_poll¶
- API:
protected - 首次版本:
9.0.0
推进底层平台 callback pump。
参数:
| 名称 | 说明 |
|---|---|
_delta |
未缩放帧间隔。 |
_cancel_request¶
- API:
protected - 首次版本:
9.0.0
处理请求取消或超时通知。
参数:
| 名称 | 说明 |
|---|---|
_handle |
已进入取消或超时终态的句柄。 |
_reason |
取消原因。 |
_shutdown¶
- API:
protected - 首次版本:
9.0.0
释放底层平台资源。
_complete_initialization¶
- API:
protected - 首次版本:
9.0.0
完成 adapter 初始化。
参数:
| 名称 | 说明 |
|---|---|
context |
已验证的平台上下文。 |
返回:首次成功完成返回 true。
_fail_initialization¶
- API:
protected - 首次版本:
9.0.0
标记 adapter 初始化失败。
参数:
| 名称 | 说明 |
|---|---|
error |
失败说明。 |
metadata |
Adapter 定义的失败元数据。 |
返回:首次失败完成返回 true。
结构:
metadata: Dictionary adapter-defined initialization failure metadata.
_publish_context¶
- API:
protected - 首次版本:
9.0.0
发布更新后的平台上下文。
参数:
| 名称 | 说明 |
|---|---|
context |
新上下文。 |
返回:身份匹配且发布成功返回 true。
_publish_lifecycle_event¶
- API:
protected - 首次版本:
9.0.0
发布平台生命周期事件。 基类会覆盖 adapter 提供的 sequence,确保每个 adapter 的事件严格单调。
参数:
| 名称 | 说明 |
|---|---|
event |
生命周期事件。 |
返回:事件有效并已发布时返回 true。
_succeed_request¶
- API:
protected - 首次版本:
9.0.0
func _succeed_request( handle: GFPlatformRequestHandle, value: Variant = null, status: StringName = &"ok", metadata: Dictionary = {} ) -> bool:
以成功结果完成请求。
参数:
| 名称 | 说明 |
|---|---|
handle |
待完成句柄。 |
value |
Adapter 返回值。 |
status |
成功状态。 |
metadata |
Adapter 结果元数据。 |
返回:首次完成成功返回 true。
结构:
value: Adapter-defined result value.metadata: Dictionary adapter-defined result metadata.
_fail_request¶
- API:
protected - 首次版本:
9.0.0
func _fail_request( handle: GFPlatformRequestHandle, status: StringName, error: String, metadata: Dictionary = {} ) -> bool:
以失败结果完成请求。
参数:
| 名称 | 说明 |
|---|---|
handle |
待完成句柄。 |
status |
稳定失败状态。 |
error |
失败说明。 |
metadata |
Adapter 失败元数据。 |
返回:首次完成成功返回 true。
结构:
metadata: Dictionary adapter-defined failure metadata.