docs(scripting): add baseline api reference and guide
This commit is contained in:
35
docs/api/XCEngine/Scripting/ScriptEngine/OnRuntimeStart.md
Normal file
35
docs/api/XCEngine/Scripting/ScriptEngine/OnRuntimeStart.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# ScriptEngine::OnRuntimeStart
|
||||
|
||||
**命名空间**: `XCEngine::Scripting`
|
||||
|
||||
**类型**: `method`
|
||||
|
||||
**头文件**: `XCEngine/Scripting/ScriptEngine.h`
|
||||
|
||||
## 签名
|
||||
|
||||
```cpp
|
||||
void OnRuntimeStart(Components::Scene* scene);
|
||||
```
|
||||
|
||||
## 当前实现流程
|
||||
|
||||
按 `engine/src/Scripting/ScriptEngine.cpp`:
|
||||
|
||||
1. 先调用 `OnRuntimeStop()` 清理旧运行时。
|
||||
2. 如果 `scene == nullptr`,直接返回。
|
||||
3. 记录 `m_runtimeScene`,置 `m_runtimeRunning = true`。
|
||||
4. 调用当前运行时 `m_runtime->OnRuntimeStart(scene)`。
|
||||
5. 订阅 `scene->OnGameObjectCreated()`,保证运行中创建的新对象也会被脚本系统追踪。
|
||||
6. 递归收集场景现有的所有 `ScriptComponent`。
|
||||
7. 对满足 `ShouldScriptRun()` 的组件调用 `EnsureScriptReady(..., true)`,从而创建实例并触发 `Awake / OnEnable`。
|
||||
|
||||
## 设计重点
|
||||
|
||||
- 这一步不会直接触发 `Start`;`Start` 留到第一次 `OnUpdate()` 再补发。
|
||||
- 订阅场景创建事件,保证 runtime-spawn 出来的对象不会漏掉脚本初始化。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [OnRuntimeStop](OnRuntimeStop.md)
|
||||
- [OnUpdate](OnUpdate.md)
|
||||
Reference in New Issue
Block a user