30 lines
786 B
Markdown
30 lines
786 B
Markdown
# ScriptEngine::OnUpdate
|
|
|
|
**命名空间**: `XCEngine::Scripting`
|
|
|
|
**类型**: `method`
|
|
|
|
**头文件**: `XCEngine/Scripting/ScriptEngine.h`
|
|
|
|
## 签名
|
|
|
|
```cpp
|
|
void OnUpdate(float deltaTime);
|
|
```
|
|
|
|
## 当前实现行为
|
|
|
|
和 `OnFixedUpdate()` 类似,但多了一步关键逻辑:
|
|
|
|
- 如果 `state.startPending && !state.startCalled`,先调用一次 `Start`。
|
|
- 随后再调用 `Update(deltaTime)`。
|
|
|
|
## 为什么 `Start` 在这里触发
|
|
|
|
当前实现选择把 `Start` 定义成“第一次正常逐帧更新前的初始化阶段”,而不是运行时刚启动就立刻调用。这和很多商业引擎的语义更接近,也更利于保证对象与脚本都已经进入稳定运行态。
|
|
|
|
## 相关文档
|
|
|
|
- [OnRuntimeStart](OnRuntimeStart.md)
|
|
- [OnLateUpdate](OnLateUpdate.md)
|