docs(scripting): add baseline api reference and guide

This commit is contained in:
2026-03-28 15:10:54 +08:00
parent 14c7fd69ec
commit 359fe2adb3
104 changed files with 3377 additions and 27 deletions

View 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)