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