public void Update() { blocksController.UpdatePosition(playerController.Position.x); while (blocksController.ShouldSpawnLeftBlock()) { var gameObject = Instantiate(GetRandomTemplate(), parent); var view = gameObject.GetComponent <BlockView>(); var data = blocksController.SpawnLeftBlock(view); view.SetPosition(data.Center); } while (blocksController.ShouldSpawnRightBlock()) { var gameObject = Instantiate(GetRandomTemplate(), parent); var view = gameObject.GetComponent <BlockView>(); var data = blocksController.SpawnRightBlock(view); view.SetPosition(data.Center); } }