docs: sync api and planning docs
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user