I’ll admit my “the closest thing we have to how things were before is AutoSync OFF” statement was poorly worded and needed a pretty big clarification.
What I meant is that AutoSync ON is just a big heavy brute-force ‘hack’ that was added just for the sake of backwards compatibility, even though it pretty much divides your framerate by 4, and it’s not at all representative of how the physics operated before. The engine didn’t call a “sync” before every physics query in 2017.1. It just operated in a way where it didn’t have to do that
But it’s true that it gives more or less the same end results as before. I say “more or less” because there are cases where it doesn’t.
If, with AutoSync ON and within a single frame, you:
-
move a transform to a position
-
do some physics operation that needed to see what would happen if that transform was there
-
then move the transform back where it originally was
-
and THEN move a rigidbody on the same GameObject as the transform by using MovePosition (for interpolation)
… it’ll result in no movement at all. I know it sounds like a really far-fetched use case that no one would really need, but I encountered a situation where I needed that (it has something to do with character controllers and moving platforms). And the solution ended up being to call a Physics.SyncTransforms() between steps 3 and 4 even though AutoSync was on, so that it would un-dirty the transform, and let MovePosition do its thing. ( here’s an unintelligible post that sort-of talks about that )