private IEnumerator CheckCameraBounds(LevelScript nextLevelScript, float levelBranchExitY, CinemachineVirtualCamera cam) { while (true) { if (cam.transform.position.y - cam.m_Lens.OrthographicSize > levelBranchExitY + 2) { Destroy(currentLevel); Destroy(levelBranch); currentLevel = nextLevel; currentLevelScript = nextLevelScript; currentLevelScript.CloseBottom(); levelCam.GetComponent <CinemachineConfiner>().m_BoundingShape2D = nextLevelScript.LevelBoundary; events.FireEvent(new LevelChange()); yield break; } yield return(null); } }