2.4 KiB
2.4 KiB
Application::GetScriptRuntimeStatus
返回当前脚本运行时状态结构的只读引用。
const EditorScriptRuntimeStatus& GetScriptRuntimeStatus() const;
返回内容
返回值指向 Application 内部持有的 m_scriptRuntimeStatus,不会复制状态结构。
当前结构体包括:
backendEnabledassembliesFoundruntimeLoadedassemblyDirectorystatusMessage
字段的详细语义见 EditorScriptRuntimeStatus。
生命周期语义
因为返回的是引用而不是快照,所以调用方需要把它当成“当前帧状态视图”而不是稳定持久对象。
当前这些操作都会刷新或重置这份状态:
InitializeScriptingRuntime(...)- ReloadScriptingRuntime
- RebuildScriptingAssemblies
SwitchProject(...)ShutdownScriptingRuntime()
因此上层 UI 更适合“读取后立即渲染”,而不是长期缓存这份引用。
当前使用方式
这份状态当前最主要的用途不是给底层脚本系统消费,而是给编辑器 UI 做降级和提示判断,例如:
- 当前是否应显示
Reload Scripts - 当前是否应显示
Rebuild Scripts - 当前没有脚本类可选时应提示“后端禁用”“程序集缺失”还是“运行时初始化失败”
相关判断主要封装在 ScriptComponentEditorUtils 中。
设计含义
把脚本运行时状态作为一个轻量只读结构暴露出来,有两个直接好处:
Application仍然掌握真正的生命周期控制权- Inspector / 菜单 / 按钮逻辑不需要了解
MonoScriptRuntime的细节
这让上层 UI 可以基于状态做产品化反馈,而不是直接探查底层脚本后端对象。
当前限制
- 这不是线程安全快照,应按主线程 / UI 线程读。
- 状态里只保存“当前 editor 观察到的脚本可用性”,不是完整诊断报告。
- 构建失败文本和 runtime 初始化失败文本都会复用
statusMessage这一条字符串通道。