docs(scripting): add baseline api reference and guide
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# MonoScriptRuntime::CreateScriptInstance
|
||||
|
||||
**命名空间**: `XCEngine::Scripting`
|
||||
|
||||
**类型**: `method`
|
||||
|
||||
**头文件**: `XCEngine/Scripting/Mono/MonoScriptRuntime.h`
|
||||
|
||||
## 签名
|
||||
|
||||
```cpp
|
||||
bool CreateScriptInstance(
|
||||
const ScriptRuntimeContext& context) override;
|
||||
```
|
||||
|
||||
## 当前实现流程
|
||||
|
||||
1. 若 `context.component` 为空,失败并记录错误。
|
||||
2. 若该实例已存在,直接返回 `true`。
|
||||
3. 若运行时尚未初始化,先调用 [Initialize](Initialize.md)。
|
||||
4. 根据组件的程序集名、命名空间和类名查找类元数据;程序集名为空时回退到 `Settings::appAssemblyName`。
|
||||
5. 在 app domain 中创建托管对象并执行默认构造。
|
||||
6. 写入上下文字段:`gameObjectUUID` 与 `scriptComponentUUID`。
|
||||
7. 把 `ScriptFieldStorage` 中能匹配上的字段写入托管对象。
|
||||
8. 创建 `gcHandle` 并写入实例缓存。
|
||||
|
||||
## 失败路径
|
||||
|
||||
类不存在、分配失败、上下文字段写入失败、存储字段应用失败时都会返回 `false` 并更新 `m_lastError`。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [DestroyScriptInstance](DestroyScriptInstance.md)
|
||||
- [SyncManagedFieldsToStorage](SyncManagedFieldsToStorage.md)
|
||||
Reference in New Issue
Block a user