void CurrentSpawn() { ST_B_stage_spawnRec rec = _arrCurrentRec[_CurrentIx]; int calc_cost = rec.spawn_cost + 1; do { int r_spawner_idx = Random.Range(0, _arrSpawner.Length); int r_cost = 1;// Random.Range(1, calc_cost); int r_pool_idx = Random.Range(0, GamePlayManager.Instance._EnemyPool._pfArrEnemy.Length); calc_cost -= r_cost; // 해당 코스트의 적을 만들어 스포너에 넣는다. switch (r_cost) { case 1: rec.spawn_pool_idx = r_pool_idx; _arrSpawner[r_spawner_idx].Add_pfEnemy(rec); _arrSpawner[r_spawner_idx]._spawnDelay = 0.5f; _arrSpawner[r_spawner_idx]._spawnCheckTime = 0.5f; _arrSpawner[r_spawner_idx].StartSpawn(); break; } _CurrentEnemyCount++; } while (calc_cost > 1); }
void Spawn() { if (_pfEnemyQ.Count <= 0) { _isStop = true; return; } // Instantiate ST_B_stage_spawnRec rec = _pfEnemyQ.Dequeue(); Enemy enemy = GamePlayManager.Instance._EnemyPool._pfArrEnemy[rec.spawn_pool_idx]; _LastSpawn = (GameObject)Instantiate(enemy.gameObject, transform.position, transform.rotation); Enemy enemy_LastSpawn = _LastSpawn.GetComponent <Enemy>(); enemy_LastSpawn._SpawnRec = rec; }
public ST_B_stage_spawnRec[] Get_stage_spawnData(int a_stage_idx) { if (_db == null) { _db = new SQLiteDB(); } string filename = GetFileName_DB(); List <ST_B_stage_spawnRec> rtnlist = new List <ST_B_stage_spawnRec>(); try { _db.Open(filename); SQLiteQuery qr; string strsql = string.Format(_querySelect_all_stage_spawn, a_stage_idx); // _querySelect_exp qr = new SQLiteQuery(_db, strsql); while (qr.Step()) { ST_B_stage_spawnRec rec = new ST_B_stage_spawnRec(); rec.idx = qr.GetInteger("idx"); rec.level_max = qr.GetInteger("level_max"); rec.level_min = qr.GetInteger("level_min"); rec.spawn_cost = qr.GetInteger("spawn_cost"); rec.stage_idx = a_stage_idx; rec.time_limit = qr.GetInteger("time_limit"); rtnlist.Add(rec); } qr.Release(); _db.Close(); } catch (Exception e) { if (_db != null) { _db.Close(); } UnityEngine.Debug.LogError(e.ToString()); } return(rtnlist.ToArray()); }
public void Add_pfEnemy(ST_B_stage_spawnRec a_rec) { _pfEnemyQ.Enqueue(a_rec); }