2.3 KiB
2.3 KiB
IScriptRuntime
命名空间: XCEngine::Scripting
类型: class (abstract)
头文件: XCEngine/Scripting/IScriptRuntime.h
描述: 定义引擎脚本调度层与具体脚本后端之间的统一契约。
概览
IScriptRuntime 是 ScriptEngine 唯一应该依赖的脚本后端接口。它把脚本后端抽象成三类能力:
- 运行时启停。
- 托管类/字段元数据查询与字段读写。
- 脚本实例创建销毁与生命周期方法调用。
这种设计让 ScriptEngine 能专注于“调度”,而把 Mono、GCHandle、程序集加载这些实现细节留给具体后端。
公开概念
ScriptLifecycleMethod
当前生命周期枚举值为:
AwakeOnEnableStartFixedUpdateUpdateLateUpdateOnDisableOnDestroy
ScriptRuntimeContext
ScriptRuntimeContext 是后端执行脚本实例时的最小上下文:
| 字段 | 说明 |
|---|---|
scene |
当前运行场景。 |
gameObject |
当前脚本所属对象。 |
component |
当前脚本组件。 |
gameObjectUUID |
原生对象 UUID。 |
scriptComponentUUID |
脚本组件 UUID。 |
线程语义
- 接口本身不承诺线程安全。
- 当前引擎默认由主线程按固定时序调用这些方法。
公开方法
| 方法 | 说明 |
|---|---|
| OnRuntimeStart | 运行时开始时的后端入口。 |
| OnRuntimeStop | 运行时停止时的后端入口。 |
| TryGetClassFieldMetadata | 查询脚本类字段元数据。 |
| TrySetManagedFieldValue | 向托管实例写字段。 |
| TryGetManagedFieldValue | 从托管实例读字段。 |
| SyncManagedFieldsToStorage | 把托管字段同步回本地存储。 |
| CreateScriptInstance | 创建脚本实例。 |
| DestroyScriptInstance | 销毁脚本实例。 |
| InvokeMethod | 调用生命周期方法。 |