public void LoadLevel(int levelIndex) { _currentLevelIndex = levelIndex; ObjectPlacement.ClearPlacedObjects(); IngameUI.ClearList(); _currentObjectList.Clear(); _currentObjectList.AddRange(Levels[_currentLevelIndex].Objects); for (int objIndex = 0; objIndex < _currentObjectList.Count; ++objIndex) { int clickIndex = objIndex; IngameUI.AddObject(_currentObjectList[objIndex].ObjectImage, _currentObjectList[objIndex].Count, () => ObjectClicked(clickIndex)); } ExecutionDelayer.Instance.ExecuteNextFrame(() => UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(IngameUI.GetComponent <RectTransform>())); SceneManager.LoadScene(Levels[_currentLevelIndex].SceneName, LoadSceneMode.Single); SceneManager.LoadScene("DynamicObjects", LoadSceneMode.Additive); ExecutionDelayer.Instance.ExecuteNextFrame(() => { SceneManager.SetActiveScene(SceneManager.GetSceneByName("DynamicObjects")); var campos = GameObject.FindWithTag("campos"); if (campos != null) { CamPan.transform.position = campos.transform.position; CamPan.transform.eulerAngles = new Vector3(CamPan.transform.eulerAngles.x, campos.transform.eulerAngles.y, 0); } }); ExecutionDelayer.Instance.ExecuteNextFrame(() => SetState(GameState.PlacingObjects)); }