Files
XCEngine/docs/api/XCEngine/Scripting/Mono/MonoScriptRuntime/CreateScriptInstance.md

1.1 KiB

MonoScriptRuntime::CreateScriptInstance

命名空间: XCEngine::Scripting

类型: method

头文件: XCEngine/Scripting/Mono/MonoScriptRuntime.h

签名

bool CreateScriptInstance(
    const ScriptRuntimeContext& context) override;

当前实现流程

  1. context.component 为空,失败并记录错误。
  2. 若该实例已存在,直接返回 true
  3. 若运行时尚未初始化,先调用 Initialize
  4. 根据组件的程序集名、命名空间和类名查找类元数据;程序集名为空时回退到 Settings::appAssemblyName
  5. 在 app domain 中创建托管对象并执行默认构造。
  6. 写入上下文字段:gameObjectUUIDscriptComponentUUID
  7. ScriptFieldStorage 中能匹配上的字段写入托管对象。
  8. 创建 gcHandle 并写入实例缓存。

失败路径

类不存在、分配失败、上下文字段写入失败、存储字段应用失败时都会返回 false 并更新 m_lastError

相关文档