Files
XCEngine/docs/api/XCEngine/Scripting/ScriptEngine/SetRuntimeFixedDeltaTime.md

2.3 KiB
Raw Blame History

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() 的关系

当前有两条相关但不完全相同的通道:

ScriptEngine 当前不会自动强制这两者一致。正常情况下应由上层时间系统保持同步。

托管侧可见性

Mono 运行时的 Time.fixedDeltaTime 内部调用当前直接读取 GetRuntimeFixedDeltaTime,因此这个配置值不仅影响原生侧说明,也会被托管脚本读到。

这也是为什么它虽然只是一个原生配置 setter却会直接影响脚本里 Time.fixedDeltaTime 的观察结果。

真实行为依据

  • engine/src/Scripting/ScriptEngine.cpp
  • engine/src/Scripting/Mono/MonoScriptRuntime.cpp
  • managed/XCEngine.ScriptCore/Time.cs

相关文档