From 0c893b1edc6c62423378d4b20118fc3cb0a673d8 Mon Sep 17 00:00:00 2001 From: KOSMOGOR Date: Wed, 23 Apr 2025 15:50:15 +0300 Subject: [PATCH] add: level controller now spawns enemies --- Assets/Scripts/Game/LevelController.cs | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/Assets/Scripts/Game/LevelController.cs b/Assets/Scripts/Game/LevelController.cs index 9ccdd12..2f696ca 100644 --- a/Assets/Scripts/Game/LevelController.cs +++ b/Assets/Scripts/Game/LevelController.cs @@ -1,12 +1,35 @@ +using System; using System.Collections.Generic; +using System.Linq; using UnityEngine; using UnityEngine.SceneManagement; +using Random = UnityEngine.Random; public class LevelController : MonoBehaviour { - public List spawnPoints; + public List spawnPoints; + + List aliveEnemies; public void Start() { + aliveEnemies = new List(); Dictionary enemies = GameController.i.PopEnemies(SceneManager.GetActiveScene().name); + while (enemies.Count > 0) { + List keys = enemies.Keys.ToList(); + GameObject enemy = keys[Random.Range(0, keys.Count)]; + enemies[enemy] -= 1; + if (enemies[enemy] <= 0) enemies.Remove(enemy); + SpawnPointInfo spawnPointInfo = spawnPoints[Random.Range(0, spawnPoints.Count)]; + Vector2 circle = Random.insideUnitCircle; + Vector3 spawnVector = spawnPointInfo.transform.position + new Vector3(circle.x, 0, circle.y); + Enemy spawnedEnemy = Instantiate(enemy, spawnVector, spawnPointInfo.transform.rotation).GetComponent(); + aliveEnemies.Add(spawnedEnemy); + } } } + +[Serializable] +public class SpawnPointInfo { + public Transform transform; + public float radius; +}