Search Unity

  1. Unity 2019.1 beta is now available.
    Dismiss Notice
  2. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  3. We're looking for insight from anyone who has experience with game testing to help us better Unity. Take our survey here. If chosen to participate you'll be entered into a sweepstake to win an Amazon gift card.
    Dismiss Notice
  4. Want to provide direct feedback to the Unity team? Join the Unity Advisory Panel.
    Dismiss Notice
  5. Unity 2018.3 is now released.
    Dismiss Notice
  6. Improve your Unity skills with a certified instructor in a private, interactive classroom. Watch the overview now.
    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.