You can put every object (except the 2D Hud canvasHUD Canvas
and the directional light) as a child of a single master empty gameobject GameObject
(let´slet's say with a name "WorldPlaceholder""worldPlaceholder") and Translate it's transformTranslate
its Transform
by the position of the main player multiplied by -1. This should be done just oneonce in a while to conserve CPU time (you can use a counter to do that ou, you place special trigger collidersCollider
each XXX meters to performeperform such a task). Something like that:
worldPlaceholder.transform.Translate (player.transform.position * -1);
I repeat: DO NOT DO THIS EVERY SINGLE FRAME! It will destroy youradvise you don't do this every frame as it could be costly in CPU time.