void OnDestroy() { instance = null; levelController = null; currentLevel = null; }
public void StartLevel() { currentLevel = GetLevelData(level); //Debug.Log("StartLevel, currentLevel : " + (currentLevel != null) + ", " + currentLevel.level); if (currentLevel != null) { levelController = new LevelController(currentLevel); } //Debug.Log("StartLevel, levelController : " + (levelController != null)); }
public void LoadLevelEnemyData(int level) { data = null; data = EnemyManager.instance.GetEnemyLevelData(level); if (data == null) { return; } ResetCurrentLevelEnemyData(); for (int i = 0; i < data.initialEnemyNumber; i++) { SpawnSpecificTypeEnemy(GameEnum.EnemyType.Type_2); } }
public LevelController(EnemyLevelData data) { level = data.level; spawners = new SpawnController[data.spawnData.Length]; int created = 0; for (int i = 0; i < data.spawnData.Length; i++) { EnemySpawnData spawnData = data.spawnData[i]; spawners[i] = SpawnController.CreateController(spawnData, i); if (spawners[i] != null) { created++; // Setting extremes of spawn times as the level time range. if (minTime < 0f) { minTime = spawnData.startSpawnTime; } else { if (minTime > spawnData.startSpawnTime) { minTime = spawnData.startSpawnTime; } } if (maxTime < 0f) { maxTime = spawnData.endSpawnTime; } else { if (maxTime < spawnData.endSpawnTime) { maxTime = spawnData.endSpawnTime; } } } } //Debug.Log("spawners.Length : " + spawners.Length + ", created: " + created); }
public EnemyLevelData GetEnemyLevelData(int levelNumber) { EnemyLevelDataScriptable levelDataScriptable = GetEnemyLevelScriptable(levelNumber); EnemyLevelData data = new EnemyLevelData(); if (levelDataScriptable != null) { data.levelNumber = levelDataScriptable.levelNumber; data.numberOfWave = levelDataScriptable.numberOfWave; data.initialEnemyNumber = levelDataScriptable.initialEnemyNumber; data.initialEnemySpawnDelay = levelDataScriptable.initialEnemySpawnDelay; data.enemySpawnDelayReduceFactorPerWave = levelDataScriptable.enemySpawnDelayReduceFactorPerWave; data.initialNumberOfEnemyInAWave = levelDataScriptable.initialNumberOfEnemyInAWave; data.multiplierOfEnemyNumberPerWave = levelDataScriptable.multiplierOfEnemyNumberPerWave; data.enemyTypeAndPercentageDictionary = GenerateDictionary(levelDataScriptable); return(data); } return(null); }
//적 레벨 정보 데이터 리스트에 추가. public void AddEnemyLevelData(int id, int wave) { EnemyLevelData data = new EnemyLevelData(id, wave); enemyLevelDataList.Add(id, data); }