35 lines
917 B
Markdown
35 lines
917 B
Markdown
|
|
# MonoScriptRuntime::InvokeMethod
|
||
|
|
|
||
|
|
**命名空间**: `XCEngine::Scripting`
|
||
|
|
|
||
|
|
**类型**: `method`
|
||
|
|
|
||
|
|
**头文件**: `XCEngine/Scripting/Mono/MonoScriptRuntime.h`
|
||
|
|
|
||
|
|
## 签名
|
||
|
|
|
||
|
|
```cpp
|
||
|
|
void InvokeMethod(
|
||
|
|
const ScriptRuntimeContext& context,
|
||
|
|
ScriptLifecycleMethod method,
|
||
|
|
float deltaTime) override;
|
||
|
|
```
|
||
|
|
|
||
|
|
## 当前实现行为
|
||
|
|
|
||
|
|
- 先找实例缓存和类元数据。
|
||
|
|
- 再从类元数据里取出对应生命周期方法指针。
|
||
|
|
- 若方法不存在,直接返回,不视为错误。
|
||
|
|
- 调用前暂存当前 internal call 的 `deltaTime`。
|
||
|
|
- 把本次 `deltaTime` 写入 internal call 全局状态。
|
||
|
|
- 调用托管方法。
|
||
|
|
- 调用后恢复旧的 `deltaTime`。
|
||
|
|
|
||
|
|
## 设计意义
|
||
|
|
|
||
|
|
这说明当前托管 `Time.deltaTime` 一类能力,并不是通过每次参数注入,而是通过 internal call 共享状态提供。
|
||
|
|
|
||
|
|
## 相关文档
|
||
|
|
|
||
|
|
- [IScriptRuntime::InvokeMethod](../../IScriptRuntime/InvokeMethod.md)
|