FixedUpdate, LateUpdate, Update, and SimulationSystemGroup physics application.

All starting at the "surface" (a plane at y = 0):

All starting y = -2 below the surface:

All starting y = 2 above the surface:

Four boxes with the point in which forces are added to the box are labeled above the box.

I have largely determined that the calculation of forces added to the box are equivalent. Just that when they are calculated and applied are different for all four boxes.

I'm fairly new to physics calculations in video games in general, let alone Unity and DOTS Physics, so I have no clue how to fix this difference.

The difference between the RigidBody FixedUpdate and DOTS Physics SimulationSystemGroup blocks. The two in the middle are just examples of what happens when I relocate the physics calculation method to different update methods.

If you look closely at DOTS Physics and RigidBody Update examples, the block height above the waterline for each block, when subtracted from each other, result in the correct block height as seen in the RigidBody FixedUpdate stable value. The strange instability in the block physics also are inversely mirrored between the RigidBody Update/LateUpdate block and the DOTS block. That seems significant but I dont know how to use that informaton.

Probably should have googled this problem before I made a post but to prevent

I stuck this script on an empty gameobject, not converted to entity, and ran everything under simulationsystemgroup on fixedupdate.

I really wish there was a better way to doing this though.

Also relevant:

1 Like