diff --git a/Assets/Scenes/Level01.unity b/Assets/Scenes/Level01.unity index c5e9d798fa09f114e45c7c0a42bacbe12ef028d4..ff2d5fd0b03d5e336f6766b40f795abcfedf8291 100644 --- a/Assets/Scenes/Level01.unity +++ b/Assets/Scenes/Level01.unity @@ -478,7 +478,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: enemy: {fileID: 153412, guid: 548c56f4bcf4db24b8aa057e9846a005, type: 3} - spawnTime: 10 + spawnTime: 15 spawnPoints: - {fileID: 345275349} - {fileID: 1725468539} @@ -498,7 +498,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: enemy: {fileID: 100000, guid: ea3c2728ef33e3a4d99527a86cda6465, type: 3} - spawnTime: 3 + spawnTime: 12 spawnPoints: - {fileID: 345275349} - {fileID: 1725468539} @@ -518,7 +518,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: enemy: {fileID: 100002, guid: e5171f72421770240bd7c3989fe351e3, type: 3} - spawnTime: 2 + spawnTime: 10 spawnPoints: - {fileID: 345275349} - {fileID: 1725468539} @@ -565,7 +565,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: enemy: {fileID: 100002, guid: 6f16db424f602b84a9c3d36cee353965, type: 3} - spawnTime: 3 + spawnTime: 15 spawnPoints: - {fileID: 345275349} - {fileID: 1725468539} @@ -11242,6 +11242,7 @@ Transform: m_Children: - {fileID: 14871712} - {fileID: 636207316} + - {fileID: 1656483646} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1212966710 @@ -12923,6 +12924,64 @@ Transform: - {fileID: 384557718} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1656483645 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1656483646} + - component: {fileID: 1656483647} + m_Layer: 0 + m_Name: LevelManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1656483646 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1656483645} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1165414997} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1656483647 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1656483645} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4c72301907703bc499d2ca179570c95c, type: 3} + m_Name: + m_EditorClassIdentifier: + levels: + - MainMenu + - Cutscene01 + - Cutscene02 + - Cutscene03 + - Level01 + - Cutscene04 + - Level01 + - Cutscene05 + - Level01 + - Cutscene06 + - Level02 + - Cutscene07 + - Cutscene08 --- !u!1 &1695883712 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/MainMenu.unity b/Assets/Scenes/MainMenu.unity index 1fc8c0b38c18365bd358a8ddd340aa8db1bfeb0e..771bcbfc708202ef27b4a7ce5a90d72e72650b33 100644 --- a/Assets/Scenes/MainMenu.unity +++ b/Assets/Scenes/MainMenu.unity @@ -1006,6 +1006,64 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 309555273} m_CullTransparentMesh: 1 +--- !u!1 &309830952 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 309830954} + - component: {fileID: 309830953} + m_Layer: 0 + m_Name: LevelManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &309830953 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 309830952} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4c72301907703bc499d2ca179570c95c, type: 3} + m_Name: + m_EditorClassIdentifier: + levels: + - MainMenu + - Cutscene01 + - Cutscene02 + - Cutscene03 + - Level01 + - Cutscene04 + - Level01 + - Cutscene05 + - Level01 + - Cutscene06 + - Level02 + - Cutscene07 + - Cutscene08 +--- !u!4 &309830954 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 309830952} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 415.86005, y: 228.66164, z: -2.693035} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &329895729 GameObject: m_ObjectHideFlags: 0 @@ -7018,3 +7076,4 @@ SceneRoots: - {fileID: 167408043} - {fileID: 1097292934} - {fileID: 1460444564} + - {fileID: 309830954} diff --git a/Assets/Scripts/Global/MainMenu.cs b/Assets/Scripts/Global/MainMenu.cs index 68b68fe5b1d2c0f280ea2a95085fda03e1cbcb19..33e8ad6fd56b5cc1d95298efe67fa29a04177834 100644 --- a/Assets/Scripts/Global/MainMenu.cs +++ b/Assets/Scripts/Global/MainMenu.cs @@ -1,3 +1,4 @@ +using Nightmare; using UnityEngine; using UnityEngine.Audio; using UnityEngine.SceneManagement; @@ -33,7 +34,7 @@ public class MainMenu : MonoBehaviour public void PlayGame() { - SceneManager.LoadScene("Cutscene01"); + LevelManager.Instance.Next(); } public void QuitGame() diff --git a/Assets/Scripts/Managers/CutsceneManager.cs b/Assets/Scripts/Managers/CutsceneManager.cs index 2cf4d1660a2147ec29d48b189d3e91f30b9eb662..93855b8b197ecfc881018fd26d5991fc0867a946 100644 --- a/Assets/Scripts/Managers/CutsceneManager.cs +++ b/Assets/Scripts/Managers/CutsceneManager.cs @@ -1,3 +1,4 @@ +using Nightmare; using System; using System.Collections; using System.Collections.Generic; @@ -6,35 +7,8 @@ using UnityEngine.SceneManagement; public class CutsceneManager : MonoBehaviour { - readonly int maxScene = 8; - public void NextScene() { - // Get the current scene - Scene currentScene = SceneManager.GetActiveScene(); - - // Extract the number from the scene name - string sceneName = currentScene.name; - string numberString = sceneName[^2..]; - - // Convert the number string to an integer - int sceneNumber = Int32.Parse(numberString) + 1; - if (sceneNumber > maxScene) - { - SceneManager.LoadScene("Level01"); - return; - } - - string newSceneName = "Cutscene"; - - if (sceneNumber < 10) - { - newSceneName += "0" + sceneNumber; - } else - { - newSceneName += sceneNumber; - } - - SceneManager.LoadScene(newSceneName); + LevelManager.Instance.Next(); } } diff --git a/Assets/Scripts/Managers/GameOverManager.cs b/Assets/Scripts/Managers/GameOverManager.cs index f005c830e97552b611a789dde7235ee4014427c1..0aae29ad05f7cd1e69f2ba02d2c890473d6cbcca 100644 --- a/Assets/Scripts/Managers/GameOverManager.cs +++ b/Assets/Scripts/Managers/GameOverManager.cs @@ -37,17 +37,12 @@ namespace Nightmare public void ResetLevel() { - //ScoreManager.score = 0; - //LevelManager lm = FindObjectOfType<LevelManager>(); - //lm.LoadInitialLevel(); - //anim.SetBool("GameOver", false); - //playerHealth.ResetPlayer(); - SceneManager.LoadScene("Level01"); + LevelManager.Instance.ResetLevel(); } public void ExitGame() { - SceneManager.LoadScene("MainMenu"); + LevelManager.Instance.Exit(); } public void ShowGameOverButtons() diff --git a/Assets/Scripts/Managers/GrenadeManager.cs b/Assets/Scripts/Managers/GrenadeManager.cs deleted file mode 100644 index 982c2d0fc5fe68f19a8325df44db7b731a1caf15..0000000000000000000000000000000000000000 --- a/Assets/Scripts/Managers/GrenadeManager.cs +++ /dev/null @@ -1,31 +0,0 @@ -using UnityEngine; -using UnityEngine.UI; -using System.Collections; - -namespace Nightmare -{ - public class GrenadeManager : MonoBehaviour - { - public static int grenades; // The player's score. - - - Text gText; // Reference to the Text component. - - - void Awake() - { - // Set up the reference. - gText = GetComponent<Text>(); - - // Reset the score. - grenades = 0; - } - - - void Update() - { - // Set the displayed text to be the word "Score" followed by the score value. - gText.text = "Grenades: " + grenades; - } - } -} \ No newline at end of file diff --git a/Assets/Scripts/Managers/GrenadeManager.cs.meta b/Assets/Scripts/Managers/GrenadeManager.cs.meta deleted file mode 100644 index e5a8b21783d64b0c627b13aecdee8acd97085aa4..0000000000000000000000000000000000000000 --- a/Assets/Scripts/Managers/GrenadeManager.cs.meta +++ /dev/null @@ -1,13 +0,0 @@ -fileFormatVersion: 2 -guid: 1e0abf995d32749428603ba20a9d41fc -timeCreated: 1518919815 -licenseType: Pro -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Managers/LevelManager.cs b/Assets/Scripts/Managers/LevelManager.cs index 78ba5868edffd9d204cc7a6cb663afc9b4d75186..000860c247a95151901642b51fac4c715a1c44a3 100644 --- a/Assets/Scripts/Managers/LevelManager.cs +++ b/Assets/Scripts/Managers/LevelManager.cs @@ -1,96 +1,139 @@ -using System.Collections.Generic; -using UnityEngine; +using UnityEngine; using UnityEngine.SceneManagement; namespace Nightmare { public class LevelManager : MonoBehaviour { - public string[] levels; - - private int currentLevel = 0; - private Scene currentScene; - private PlayerMovement playerMove; - private Vector3 playerRespawn; - private CinematicController cinema; - - void OnEnable() - { - SceneManager.sceneLoaded += OnSceneLoaded; - SceneManager.sceneUnloaded += OnSceneUnloaded; - } - - void Start() + public string[] levels = { + "MainMenu", + "Cutscene01", + "Cutscene02", + "Cutscene03", + "Level01", + "Cutscene04", + "Level01", + "Cutscene05", + "Level01", + "Cutscene06", + "Level02", + "Cutscene07", + "Cutscene08" + }; + + private static LevelManager instance; + private int currentIndex = 0; + + public static LevelManager Instance { - cinema = FindObjectOfType<CinematicController>(); - SceneManager.LoadSceneAsync(levels[0], LoadSceneMode.Additive); - playerMove = FindObjectOfType<PlayerMovement>(); - playerRespawn = playerMove.transform.position; - } - - public void AdvanceLevel() - { - LoadLevel(currentLevel + 1); + get + { + if (instance == null) + { + instance = FindObjectOfType<LevelManager>(); + if (instance == null) + { + GameObject managerObject = new GameObject("LevelManager"); + instance = managerObject.AddComponent<LevelManager>(); + } + } + return instance; + } } - public void LoadInitialLevel() + private void Awake() { - LoadLevel(0); + if (instance == null) + { + instance = this; + DontDestroyOnLoad(gameObject); + } + else + { + Destroy(gameObject); + } } - private void LoadLevel(int level) + private void Update() { - currentLevel = level; - - //Load next level in background - string loadingScene = levels[level % levels.Length]; - SceneManager.LoadSceneAsync(loadingScene, LoadSceneMode.Additive); + // Check if the Enter key is pressed + if (Input.GetKeyDown(KeyCode.Comma)) + { + // Call the Next() method + Next(); + } } - void OnSceneLoaded(Scene scene, LoadSceneMode mode) + public void LoadScene() { - if (mode != LoadSceneMode.Additive) - return; - - playerMove.transform.position = playerRespawn; - SceneManager.SetActiveScene(scene); - - DisableOldScene(); - - currentScene = scene; + if (levels[currentIndex].StartsWith("Cutscene")) + { + Time.timeScale = 0; + bool skip = true; + for (int i = 0; i < SceneManager.sceneCount; i++) + { + Scene scene = SceneManager.GetSceneAt(i); + if (scene.name.StartsWith("Level")) + { + skip = false; + break; + } + } - // Play realtime cinematic? - if (currentLevel > 1) - cinema.StartCinematic(CinematicController.CinematicType.Realtime); + if (skip) + { + SceneManager.LoadSceneAsync(levels[currentIndex], LoadSceneMode.Single); + } else + { + SceneManager.LoadSceneAsync(levels[currentIndex], LoadSceneMode.Additive); + } + } else - cinema.StartCinematic(CinematicController.CinematicType.PreRendered); - } - - private void DisableOldScene() - { - if (currentScene.IsValid()) { - // Disable old scene. - GameObject[] oldSceneObjects = currentScene.GetRootGameObjects(); - for (int i = 0; i < oldSceneObjects.Length; i++) + Scene currentLevel = SceneManager.GetSceneAt(0); + for (int i = 0; i < SceneManager.sceneCount; i++) { - oldSceneObjects[i].SetActive(false); + Scene scene = SceneManager.GetSceneAt(i); + if (!scene.name.StartsWith("Cutscene")) + { + currentLevel = scene; + } else if (SceneManager.sceneCount != 1) + { + SceneManager.UnloadSceneAsync(scene); + } } - // Unload it. - SceneManager.UnloadSceneAsync(currentScene); + if (currentLevel.name != levels[currentIndex]) + { + SceneManager.LoadSceneAsync(levels[currentIndex], LoadSceneMode.Single); + } + Time.timeScale = 1; } } - void OnSceneUnloaded(Scene scene) + public void Next() { + currentIndex++; + if (currentIndex < levels.Length) + { + LoadScene(); + } + else + { + Exit(); + } + } + public void Exit() + { + currentIndex = 0; + SceneManager.LoadScene(levels[currentIndex], LoadSceneMode.Single); } - void OnDisable() + public void ResetLevel() { - SceneManager.sceneLoaded -= OnSceneLoaded; - SceneManager.sceneUnloaded -= OnSceneUnloaded; + currentIndex = 1; + SceneManager.LoadScene(levels[currentIndex], LoadSceneMode.Single); } } -} \ No newline at end of file +} diff --git a/Assets/Scripts/Managers/ScoreManager.cs b/Assets/Scripts/Managers/ScoreManager.cs index ec4c641ba95b911da8295b7ff7e34cd2e16cb991..b04e27f45f28b176b602b1bda23034a57dcba6d8 100644 --- a/Assets/Scripts/Managers/ScoreManager.cs +++ b/Assets/Scripts/Managers/ScoreManager.cs @@ -34,7 +34,6 @@ namespace Nightmare { levelThreshhold = score + LEVEL_INCREASE; LevelManager lm = FindObjectOfType<LevelManager>(); - lm.AdvanceLevel(); } } } \ No newline at end of file diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index e3269c93da0696cc9800511d9c9b30bc2f3c6d69..bc915f164c30c08772499ce93c9d96800b8e9c53 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2022.3.25f1 -m_EditorVersionWithRevision: 2022.3.25f1 (530ae0ba3889) +m_EditorVersion: 2022.3.24f1 +m_EditorVersionWithRevision: 2022.3.24f1 (334eb2a0b267)