public void NextScene() { if (m_currentScene >= 0) { m_allScenes[m_currentScene].SceneInstance.gameObject.SetActive(false); } m_currentScene++; if (m_currentScene < m_allScenes.Length) { SceneParent sceneParent = m_allScenes[m_currentScene].SceneInstance; sceneParent.gameObject.SetActive(true); PlayerSpawn.RespawnAll(); CameraControl.Instance.GoTo(sceneParent.transform.position); if (OnSceneChanged != null) { OnSceneChanged(sceneParent); } } }
public void NotifySceneLoaded(SceneParent parent) { int index = 0; for (int i = 0; i < m_allScenes.Length; i++) { if (m_allScenes[i].SceneName == parent.SceneName) { index = i; m_allScenes[i].SceneInstance = parent; parent.gameObject.SetActive(false); break; } } // hardcoded scene height parent.transform.position = new Vector3(0f, 18f * (index + 1f), 0f); if (index == m_currentScene) { parent.gameObject.SetActive(true); PlayerSpawn.RespawnAll(); } }