1.1 KiB
1.1 KiB
MonoScriptRuntime::CreateScriptInstance
命名空间: XCEngine::Scripting
类型: method
头文件: XCEngine/Scripting/Mono/MonoScriptRuntime.h
签名
bool CreateScriptInstance(
const ScriptRuntimeContext& context) override;
当前实现流程
- 若
context.component为空,失败并记录错误。 - 若该实例已存在,直接返回
true。 - 若运行时尚未初始化,先调用 Initialize。
- 根据组件的程序集名、命名空间和类名查找类元数据;程序集名为空时回退到
Settings::appAssemblyName。 - 在 app domain 中创建托管对象并执行默认构造。
- 写入上下文字段:
gameObjectUUID与scriptComponentUUID。 - 把
ScriptFieldStorage中能匹配上的字段写入托管对象。 - 创建
gcHandle并写入实例缓存。
失败路径
类不存在、分配失败、上下文字段写入失败、存储字段应用失败时都会返回 false 并更新 m_lastError。