2

如果我设置 Time.timeScale = 0; 如果设置 Time.fixedDeltaTime = 0,则没有任何变化;我的物理对象开始出现奇怪的行为,但并没有完全停止。也许有人知道如何更改 DOTS Physics 的 timeScale

4

1 回答 1

0

在函数Unity.Physics\ECS\Base\Systems\StepPhysicsWorld.cs内部,OnUpdate()使用标量修改 timeStep 值,使其看起来像这样:

float timeStep = Time.DeltaTime * PhysicsSettings.TimeScale;

// Schedule the simulation jobs
Simulation.ScheduleStepJobs(new SimulationStepInput()
{
   World = m_BuildPhysicsWorldSystem.PhysicsWorld,
   TimeStep = timeStep,
   Gravity = stepComponent.Gravity,
   SynchronizeCollisionWorld = stepComponent.SynchronizeCollisionWorld > 0,
   NumSolverIterations = stepComponent.SolverIterationCount,
   SolverStabilizationHeuristicSettings = stepComponent.SolverStabilizationHeuristicSettings

}, m_Callbacks, handle, stepComponent.MultiThreaded > 0);

PhysicsSettings我的存储点物理全局变量的类在哪里。

于 2021-03-19T15:39:25.613 回答