Search Unity

  1. Improved Prefab workflow (includes Nested Prefabs!), 2D isometric Tilemap and more! Get the 2018.3 Beta now.
    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. Let us know a bit about your interests, and if you'd like to become more directly involved. Take our survey!
    Dismiss Notice
  4. Don't miss out on the Unite LA Keynote for the latest information from Unity! Set a reminder!
    Dismiss Notice
  5. Improve your Unity skills with a certified instructor in a private, interactive classroom. Watch the overview now.
    Dismiss Notice
  6. Want to see the most recent patch releases? Take a peek at the patch release page.
    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.