You can put every object (except the 2D HUD [`Canvas`](https://docs.unity3d.com/Manual/UICanvas.html) and the directional light) as a child of a single master empty [`GameObject`](https://docs.unity3d.com/ScriptReference/GameObject.html) (let's say with a name "worldPlaceholder") and [`Translate`](https://docs.unity3d.com/ScriptReference/Transform.Translate.html) its [`Transform`](https://docs.unity3d.com/ScriptReference/Transform.html) by the position of the main player multiplied by -1. This should be done just once in a while to conserve CPU time (you can use a counter to do that, you place special trigger [`Collider`](https://docs.unity3d.com/ScriptReference/Collider.html) each X meters to perform such a task). Something like that: `worldPlaceholder.transform.Translate (player.transform.position * -1);` I advise you don't do this every frame as it could be costly in CPU time.