57 lines
2.0 KiB
Markdown
57 lines
2.0 KiB
Markdown
|
|
# ScriptEngine::GetRuntimeFixedDeltaTime
|
|||
|
|
|
|||
|
|
**命名空间**: `XCEngine::Scripting`
|
|||
|
|
|
|||
|
|
**类型**: `method`
|
|||
|
|
|
|||
|
|
**头文件**: `XCEngine/Scripting/ScriptEngine.h`
|
|||
|
|
|
|||
|
|
## 签名
|
|||
|
|
|
|||
|
|
```cpp
|
|||
|
|
float GetRuntimeFixedDeltaTime() const;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 当前语义
|
|||
|
|
|
|||
|
|
返回 `ScriptEngine` 当前持有的运行时固定步长配置值,也就是 `m_runtimeFixedDeltaTime`。
|
|||
|
|
|
|||
|
|
它的来源当前只有两类:
|
|||
|
|
|
|||
|
|
- [SetRuntimeFixedDeltaTime](SetRuntimeFixedDeltaTime.md) 写入的正值
|
|||
|
|
- 默认回退值 [DefaultFixedDeltaTime](DefaultFixedDeltaTime.md)
|
|||
|
|
|
|||
|
|
## 生命周期行为
|
|||
|
|
|
|||
|
|
- 启动前如果已配置非默认值,[OnRuntimeStart](OnRuntimeStart.md) 会在内部 stop/start 之间保留这份配置。
|
|||
|
|
- [OnRuntimeStop](OnRuntimeStop.md) 结束后,该值会重置为 [DefaultFixedDeltaTime](DefaultFixedDeltaTime.md)。
|
|||
|
|
- 调用 [SetRuntimeFixedDeltaTime](SetRuntimeFixedDeltaTime.md) 并传入非正值,也会立刻回到默认值。
|
|||
|
|
|
|||
|
|
## 与 `OnFixedUpdate()` 的区别
|
|||
|
|
|
|||
|
|
这个 getter 返回的是“配置的固定步长”,不是“某次具体 fixed tick 传进来的参数”。
|
|||
|
|
|
|||
|
|
当前 [OnFixedUpdate](OnFixedUpdate.md) 仍使用调用方显式传入的 `fixedDeltaTime` 参数驱动脚本生命周期;如果上层把两者配置成不同值,脚本回调收到的 delta 与这里返回的配置值就可能出现偏差。
|
|||
|
|
|
|||
|
|
## 托管侧可见性
|
|||
|
|
|
|||
|
|
Mono 运行时的 `Time.fixedDeltaTime` 当前就是通过内部调用直接读取这个 getter,因此它也是托管脚本看到的固定步长配置值。
|
|||
|
|
|
|||
|
|
这也是为什么测试里会同时区分:
|
|||
|
|
|
|||
|
|
- `FixedUpdate()` 里通过 `Time.deltaTime` 观察到的本次 fixed tick delta
|
|||
|
|
- 以及通过 `Time.fixedDeltaTime` 观察到的当前配置值
|
|||
|
|
|
|||
|
|
## 真实行为依据
|
|||
|
|
|
|||
|
|
- `engine/src/Scripting/ScriptEngine.cpp`
|
|||
|
|
- `engine/src/Scripting/Mono/MonoScriptRuntime.cpp`
|
|||
|
|
- `managed/XCEngine.ScriptCore/Time.cs`
|
|||
|
|
- `tests/Scripting/test_mono_script_runtime.cpp`
|
|||
|
|
|
|||
|
|
## 相关文档
|
|||
|
|
|
|||
|
|
- [SetRuntimeFixedDeltaTime](SetRuntimeFixedDeltaTime.md)
|
|||
|
|
- [DefaultFixedDeltaTime](DefaultFixedDeltaTime.md)
|
|||
|
|
- [OnFixedUpdate](OnFixedUpdate.md)
|