docs: sync api and planning docs

This commit is contained in:
2026-04-08 16:07:03 +08:00
parent 08c3278e10
commit 31756847ab
1826 changed files with 44502 additions and 29645 deletions

View File

@@ -0,0 +1,56 @@
# ScriptEngine::SetRuntimeFixedDeltaTime
**命名空间**: `XCEngine::Scripting`
**类型**: `method`
**头文件**: `XCEngine/Scripting/ScriptEngine.h`
## 签名
```cpp
void SetRuntimeFixedDeltaTime(float fixedDeltaTime);
```
## 当前实现行为
-`fixedDeltaTime > 0.0f` 时,直接把 `m_runtimeFixedDeltaTime` 设为该值。
-`fixedDeltaTime <= 0.0f` 时,回退到 [DefaultFixedDeltaTime](DefaultFixedDeltaTime.md)。
它不会立即驱动一次 `FixedUpdate`,也不会主动要求场景运行时调整时间步长;当前只是更新 `ScriptEngine` 持有的“运行时固定步长配置值”。
## 与运行时启停的关系
- 如果在 [OnRuntimeStart](OnRuntimeStart.md) 之前先配置该值,启动时会先暂存当前配置、内部调用一次 [OnRuntimeStop](OnRuntimeStop.md) 清理旧状态,再把这个配置值恢复回来,因此“启动前配置”不会被那次内部清理抹掉。
- 一旦显式执行 [OnRuntimeStop](OnRuntimeStop.md),当前配置会被重置回 [DefaultFixedDeltaTime](DefaultFixedDeltaTime.md)。
这意味着非默认 fixed delta 更像“本次运行前的配置值”,而不是跨 stop/start 永久保留的全局偏好。
## 与 `OnFixedUpdate()` 的关系
当前有两条相关但不完全相同的通道:
- [OnFixedUpdate](OnFixedUpdate.md) 的 `fixedDeltaTime` 参数决定本次 `FixedUpdate` 生命周期回调收到的 delta
- [GetRuntimeFixedDeltaTime](GetRuntimeFixedDeltaTime.md) 返回的是这里设置的运行时配置值
`ScriptEngine` 当前不会自动强制这两者一致。正常情况下应由上层时间系统保持同步。
## 托管侧可见性
Mono 运行时的 `Time.fixedDeltaTime` 内部调用当前直接读取 [GetRuntimeFixedDeltaTime](GetRuntimeFixedDeltaTime.md),因此这个配置值不仅影响原生侧说明,也会被托管脚本读到。
这也是为什么它虽然只是一个原生配置 setter却会直接影响脚本里 `Time.fixedDeltaTime` 的观察结果。
## 真实行为依据
- `engine/src/Scripting/ScriptEngine.cpp`
- `engine/src/Scripting/Mono/MonoScriptRuntime.cpp`
- `managed/XCEngine.ScriptCore/Time.cs`
## 相关文档
- [GetRuntimeFixedDeltaTime](GetRuntimeFixedDeltaTime.md)
- [DefaultFixedDeltaTime](DefaultFixedDeltaTime.md)
- [OnRuntimeStart](OnRuntimeStart.md)
- [OnRuntimeStop](OnRuntimeStop.md)
- [OnFixedUpdate](OnFixedUpdate.md)