Search Unity

  1. Unity 2019.1 is now released.
    Dismiss Notice

Custom Physic Rate Parallel with FixedUpdate()

Discussion in 'Physics' started by NDSno1, Oct 10, 2018.

  1. NDSno1

    NDSno1

    Joined:
    Dec 20, 2014
    Posts:
    195
    Hi all,
    In my current project, I'm trying to have a physic calculation that runs at different rate from fixedupdate(). For example, the fixedupdate() rate is 50Hz, then I would like to have a sub task running at 100Hz.
    The problem right now is that everything inside FixedUpdate() will only be updated after FixedUpdate() is done. So something like this, which is what I'm planning to do, is not going to work, because everything inside the substep loop won't be updated unless FixedUpdate() is done:
    Code (CSharp):
    1. timeToProcess += Time.fixedDeltaTime;
    2. totalSubStepTime = 0f;
    3. distanceTraveled = 0f;
    4. subStepFixedDeltaTime = Time.fixedDeltaTime / stepNum; //custom fixed delta time per sub step
    5. while (timeToProcess >= subStepFixedDeltaTime)
    6. {
    7.     velocity += acceleration * totalSubStepTime;
    8.     distanceTraveled += velocity * totalSubStepTime;
    9.     totalSubStepTime += subStepFixedDeltaTime;
    10.     timeToProcess -= subStepFixedDeltaTime;
    11. }
    Anyone got any idea?
    Thank you very much.