跳转至

GFResourceLoadState

API Reference / Standard / 类索引

  • 路径:addons/gf/standard/utilities/assets/gf_resource_load_state.gd
  • 模块:Standard
  • 继承:RefCounted
  • API:public
  • 类别:值对象 (value_object)
  • 首次版本:7.0.0

资源加载状态与引用快照。 用于把资源键、路径、加载状态、进度、错误和弱/强引用模式收敛为统一状态对象。 它不发起 ResourceLoader 请求,也不规定资源包、下载或缓存策略。

成员概览

类型 名称 签名
常量 STATUS_UNREQUESTED const STATUS_UNREQUESTED: StringName = &"unrequested"
常量 STATUS_REQUESTED const STATUS_REQUESTED: StringName = &"requested"
常量 STATUS_LOADING const STATUS_LOADING: StringName = &"loading"
常量 STATUS_LOADED const STATUS_LOADED: StringName = &"loaded"
常量 STATUS_FAILED const STATUS_FAILED: StringName = &"failed"
常量 STATUS_RELEASED const STATUS_RELEASED: StringName = &"released"
常量 STATUS_STALE const STATUS_STALE: StringName = &"stale"
常量 REFERENCE_WEAK const REFERENCE_WEAK: StringName = &"weak"
常量 REFERENCE_STRONG const REFERENCE_STRONG: StringName = &"strong"
属性 resource_key var resource_key: StringName = &""
属性 resource_path var resource_path: String = ""
属性 status var status: StringName = STATUS_UNREQUESTED:
属性 progress var progress: float = 0.0:
属性 error var error: String = ""
属性 reference_mode var reference_mode: StringName = REFERENCE_WEAK:
属性 metadata var metadata: Dictionary = {}
方法 configure func configure( p_resource_key: StringName, p_resource_path: String = "", options: Dictionary = {} ) -> GFResourceLoadState:
方法 set_status func set_status(p_status: StringName, options: Dictionary = {}) -> GFResourceLoadState:
方法 set_resource func set_resource(resource: Resource, options: Dictionary = {}) -> GFResourceLoadState:
方法 get_resource func get_resource() -> Resource:
方法 has_resource func has_resource() -> bool:
方法 clear_resource func clear_resource(options: Dictionary = {}) -> GFResourceLoadState:
方法 mark_requested func mark_requested(p_metadata: Dictionary = {}) -> GFResourceLoadState:
方法 mark_loading func mark_loading(p_progress: float = 0.0, p_metadata: Dictionary = {}) -> GFResourceLoadState:
方法 mark_loaded func mark_loaded(resource: Resource, p_metadata: Dictionary = {}) -> GFResourceLoadState:
方法 mark_failed func mark_failed(error_text: String, p_metadata: Dictionary = {}) -> GFResourceLoadState:
方法 mark_released func mark_released(p_metadata: Dictionary = {}) -> GFResourceLoadState:
方法 mark_stale func mark_stale(reason: String = "", p_metadata: Dictionary = {}) -> GFResourceLoadState:
方法 is_success func is_success() -> bool:
方法 is_terminal func is_terminal() -> bool:
方法 to_dictionary func to_dictionary() -> Dictionary:
方法 duplicate_state func duplicate_state() -> GFResourceLoadState:
方法 from_dictionary static func from_dictionary(data: Dictionary) -> GFResourceLoadState:

常量

STATUS_UNREQUESTED

  • API:public
  • 首次版本:7.0.0
const STATUS_UNREQUESTED: StringName = &"unrequested"

尚未请求资源。

STATUS_REQUESTED

  • API:public
  • 首次版本:7.0.0
const STATUS_REQUESTED: StringName = &"requested"

已请求资源但尚未开始加载。

STATUS_LOADING

  • API:public
  • 首次版本:7.0.0
const STATUS_LOADING: StringName = &"loading"

资源正在加载。

STATUS_LOADED

  • API:public
  • 首次版本:7.0.0
const STATUS_LOADED: StringName = &"loaded"

资源已加载。

STATUS_FAILED

  • API:public
  • 首次版本:7.0.0
const STATUS_FAILED: StringName = &"failed"

资源加载失败。

STATUS_RELEASED

  • API:public
  • 首次版本:7.0.0
const STATUS_RELEASED: StringName = &"released"

资源引用已释放。

STATUS_STALE

  • API:public
  • 首次版本:7.0.0
const STATUS_STALE: StringName = &"stale"

资源状态已过期,需要调用方重新解析或加载。

REFERENCE_WEAK

  • API:public
  • 首次版本:7.0.0
const REFERENCE_WEAK: StringName = &"weak"

只保存弱引用。

REFERENCE_STRONG

  • API:public
  • 首次版本:7.0.0
const REFERENCE_STRONG: StringName = &"strong"

保存强引用,由状态对象持有资源。

属性

resource_key

  • API:public
  • 首次版本:7.0.0
var resource_key: StringName = &""

稳定资源键。

resource_path

  • API:public
  • 首次版本:7.0.0
var resource_path: String = ""

资源路径或解析后的路径。

status

  • API:public
  • 首次版本:7.0.0
var status: StringName = STATUS_UNREQUESTED:

当前加载状态。

progress

  • API:public
  • 首次版本:7.0.0
var progress: float = 0.0:

加载进度,范围 0 到 1。

error

  • API:public
  • 首次版本:7.0.0
var error: String = ""

最近错误文本。

reference_mode

  • API:public
  • 首次版本:7.0.0
var reference_mode: StringName = REFERENCE_WEAK:

资源引用模式。

metadata

  • API:public
  • 首次版本:7.0.0
var metadata: Dictionary = {}

调用方元数据。

结构:

  • metadata: Dictionary for caller-defined resource state metadata.

方法

configure

  • API:public
  • 首次版本:7.0.0
func configure( p_resource_key: StringName, p_resource_path: String = "", options: Dictionary = {} ) -> GFResourceLoadState:

配置资源加载状态。

参数:

名称 说明
p_resource_key 稳定资源键。
p_resource_path 资源路径。
options 状态选项,支持 status、progress、error、reference_mode 和 metadata。

返回:当前状态。

结构:

  • options: Dictionary,可包含 status: StringName、progress: float、error: String、reference_mode: StringName、metadata: Dictionary。

set_status

  • API:public
  • 首次版本:7.0.0
func set_status(p_status: StringName, options: Dictionary = {}) -> GFResourceLoadState:

设置状态并按需合并 metadata。

参数:

名称 说明
p_status 新状态。
options 状态选项,支持 progress、error、metadata 和 clear_error。

返回:当前状态。

结构:

  • options: Dictionary,可包含 progress: float、error: String、metadata: Dictionary、clear_error: bool。

set_resource

  • API:public
  • 首次版本:7.0.0
func set_resource(resource: Resource, options: Dictionary = {}) -> GFResourceLoadState:

设置当前资源引用。

参数:

名称 说明
resource 已加载资源;为空时会清除引用。
options 引用选项,支持 reference_mode 和 metadata。

返回:当前状态。

结构:

  • options: Dictionary,可包含 reference_mode: StringName 和 metadata: Dictionary。

get_resource

  • API:public
  • 首次版本:7.0.0
func get_resource() -> Resource:

获取当前资源引用。

返回:当前资源;弱引用已释放时返回 null。

has_resource

  • API:public
  • 首次版本:7.0.0
func has_resource() -> bool:

检查当前状态是否仍能取得资源。

返回:资源引用仍有效时返回 true。

clear_resource

  • API:public
  • 首次版本:7.0.0
func clear_resource(options: Dictionary = {}) -> GFResourceLoadState:

清除当前资源引用。

参数:

名称 说明
options 清除选项,支持 status 和 metadata。

返回:当前状态。

结构:

  • options: Dictionary,可包含 status: StringName 和 metadata: Dictionary。

mark_requested

  • API:public
  • 首次版本:7.0.0
func mark_requested(p_metadata: Dictionary = {}) -> GFResourceLoadState:

标记资源已请求。

参数:

名称 说明
p_metadata 调用方元数据。

返回:当前状态。

结构:

  • p_metadata: Dictionary merged into metadata.

mark_loading

  • API:public
  • 首次版本:7.0.0
func mark_loading(p_progress: float = 0.0, p_metadata: Dictionary = {}) -> GFResourceLoadState:

标记资源正在加载。

参数:

名称 说明
p_progress 加载进度。
p_metadata 调用方元数据。

返回:当前状态。

结构:

  • p_metadata: Dictionary merged into metadata.

mark_loaded

  • API:public
  • 首次版本:7.0.0
func mark_loaded(resource: Resource, p_metadata: Dictionary = {}) -> GFResourceLoadState:

标记资源已加载并保存引用。

参数:

名称 说明
resource 已加载资源。
p_metadata 调用方元数据。

返回:当前状态。

结构:

  • p_metadata: Dictionary merged into metadata.

mark_failed

  • API:public
  • 首次版本:7.0.0
func mark_failed(error_text: String, p_metadata: Dictionary = {}) -> GFResourceLoadState:

标记加载失败。

参数:

名称 说明
error_text 错误文本。
p_metadata 调用方元数据。

返回:当前状态。

结构:

  • p_metadata: Dictionary merged into metadata.

mark_released

  • API:public
  • 首次版本:7.0.0
func mark_released(p_metadata: Dictionary = {}) -> GFResourceLoadState:

标记资源已释放。

参数:

名称 说明
p_metadata 调用方元数据。

返回:当前状态。

结构:

  • p_metadata: Dictionary merged into metadata.

mark_stale

  • API:public
  • 首次版本:7.0.0
func mark_stale(reason: String = "", p_metadata: Dictionary = {}) -> GFResourceLoadState:

标记资源状态已过期。

参数:

名称 说明
reason 过期原因。
p_metadata 调用方元数据。

返回:当前状态。

结构:

  • p_metadata: Dictionary merged into metadata.

is_success

  • API:public
  • 首次版本:7.0.0
func is_success() -> bool:

检查当前状态是否为成功终态。

返回:成功加载且资源引用有效时返回 true。

is_terminal

  • API:public
  • 首次版本:7.0.0
func is_terminal() -> bool:

检查当前状态是否为终态。

返回:loaded、failed 或 released 时返回 true。

to_dictionary

  • API:public
  • 首次版本:7.0.0
func to_dictionary() -> Dictionary:

导出状态字典。

返回:状态字典。

结构:

  • return: Dictionary,包含 resource_key、resource_path、status、progress、error、reference_mode、has_resource、resource_instance_id 和 metadata。

duplicate_state

  • API:public
  • 首次版本:7.0.0
func duplicate_state() -> GFResourceLoadState:

复制状态对象;当前资源引用会以相同引用模式传递。

返回:状态副本。

from_dictionary

  • API:public
  • 首次版本:7.0.0
static func from_dictionary(data: Dictionary) -> GFResourceLoadState:

从字典恢复状态对象。资源引用不会从字典中恢复。

参数:

名称 说明
data to_dictionary() 兼容字典。

返回:状态对象。

结构:

  • data: Dictionary with resource_key, resource_path, status, progress, error, reference_mode and metadata.