Files
XCEngine/docs/api/XCEngine/Editor/Application/GetScriptRuntimeStatus.md

2.4 KiB

Application::GetScriptRuntimeStatus

返回当前脚本运行时状态结构的只读引用。

const EditorScriptRuntimeStatus& GetScriptRuntimeStatus() const;

返回内容

返回值指向 Application 内部持有的 m_scriptRuntimeStatus,不会复制状态结构。

当前结构体包括:

  • backendEnabled
  • assembliesFound
  • runtimeLoaded
  • assemblyDirectory
  • statusMessage

字段的详细语义见 EditorScriptRuntimeStatus

生命周期语义

因为返回的是引用而不是快照,所以调用方需要把它当成“当前帧状态视图”而不是稳定持久对象。

当前这些操作都会刷新或重置这份状态:

因此上层 UI 更适合“读取后立即渲染”,而不是长期缓存这份引用。

当前使用方式

这份状态当前最主要的用途不是给底层脚本系统消费,而是给编辑器 UI 做降级和提示判断,例如:

  • 当前是否应显示 Reload Scripts
  • 当前是否应显示 Rebuild Scripts
  • 当前没有脚本类可选时应提示“后端禁用”“程序集缺失”还是“运行时初始化失败”

相关判断主要封装在 ScriptComponentEditorUtils 中。

设计含义

把脚本运行时状态作为一个轻量只读结构暴露出来,有两个直接好处:

  1. Application 仍然掌握真正的生命周期控制权
  2. Inspector / 菜单 / 按钮逻辑不需要了解 MonoScriptRuntime 的细节

这让上层 UI 可以基于状态做产品化反馈,而不是直接探查底层脚本后端对象。

当前限制

  • 这不是线程安全快照,应按主线程 / UI 线程读。
  • 状态里只保存“当前 editor 观察到的脚本可用性”,不是完整诊断报告。
  • 构建失败文本和 runtime 初始化失败文本都会复用 statusMessage 这一条字符串通道。

相关文档