From de6739cdfaea6e8602716b512853e5a21345a2a4 Mon Sep 17 00:00:00 2001 From: KOSMOGOR Date: Thu, 24 Apr 2025 13:18:37 +0300 Subject: [PATCH] add: OnLevelClear event --- Assets/Scripts/Game/GameController.cs | 4 ++++ Assets/Scripts/Game/LevelController.cs | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/Assets/Scripts/Game/GameController.cs b/Assets/Scripts/Game/GameController.cs index c14f634..09aeeb3 100644 --- a/Assets/Scripts/Game/GameController.cs +++ b/Assets/Scripts/Game/GameController.cs @@ -30,6 +30,10 @@ public class GameController : MonoBehaviour public LevelInfo GetLevel(string sceneName) { return levels.Find(x => x.scene.name == sceneName); } + + public void OnLevelClear(string sceneName, float timeSpent) { + + } } [Serializable] diff --git a/Assets/Scripts/Game/LevelController.cs b/Assets/Scripts/Game/LevelController.cs index 2f696ca..b820eb6 100644 --- a/Assets/Scripts/Game/LevelController.cs +++ b/Assets/Scripts/Game/LevelController.cs @@ -1,15 +1,18 @@ using System; using System.Collections.Generic; using System.Linq; +using UnityEditor; using UnityEngine; using UnityEngine.SceneManagement; using Random = UnityEngine.Random; public class LevelController : MonoBehaviour { + public SceneAsset deployScene; public List spawnPoints; List aliveEnemies; + float timeSpent = 0; public void Start() { aliveEnemies = new List(); @@ -26,6 +29,14 @@ public class LevelController : MonoBehaviour aliveEnemies.Add(spawnedEnemy); } } + + public void Update() { + if (aliveEnemies.All(enemy => enemy == null)) { + GameController.i.OnLevelClear(SceneManager.GetActiveScene().name, timeSpent); + SceneManager.LoadScene(deployScene.name); + } + timeSpent += Time.deltaTime; + } } [Serializable]