keep camera at origin?

I’m trying to figure out how to program Unity so that I can have a large-scale environment without floating precision problems. My idea on how to implement it is such:

The character controller would be modified with an additional flag to indicate that it is the one that the camera is following. This flag would prevent Update() from making it’s calculations ( since that character’s re-positioning will move the camera ).

Additionally it will have a Vector3 realPosition, so that transform.position will be relative to the player instead of the origin.

The camera controller will instruct the character to perform it’s update, but it will prevent that change from taking effect until the next frame so that neither the character nor the rest of the world jitters.

Here’s the problem I can’t figure out:

If an object is travelling across a terrain, then that object needs to z-follow the terrain. The problem is, both the object’s position and terrain’s position are relative to the camera, and I can’t control whether the object’s update gets called before or after the terrain, so the object’s sampling of the terrain’s z-value will be wrong.

If anybody has solved this problem, how did you go about it?

I suppose one solution would be to iterate through all GameObjects in the scene from the camera’s LateUpdate() and adjust them based on how far the camera moved, but I can’t help thinking that’s not the best solution.

I have similar question regarding camera at origin.

This is the sole point making me hesitating using Unity for my next game. Thanks.