코드 리팩토링
This commit is contained in:
		@@ -101,57 +101,9 @@ namespace TON
 | 
			
		||||
            {
 | 
			
		||||
                // 플레이어가 죽었을 때
 | 
			
		||||
                SoundManager.instance.BgSoundPlay(null);
 | 
			
		||||
                // 필요하다면 gameStarted = false; 등을 설정하여 한 번만 실행되게 함
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        private void SpawnBossMonster()
 | 
			
		||||
        {
 | 
			
		||||
            GameObject bossPrefab = GetBossPrefabForWave(currentWave);
 | 
			
		||||
 | 
			
		||||
            if (spawnPoints.Length >= 2)
 | 
			
		||||
            {
 | 
			
		||||
                // 왼쪽 스폰 포인트
 | 
			
		||||
                GameObject leftBoss = Instantiate(bossPrefab, spawnPoints[0].position, Quaternion.identity);
 | 
			
		||||
                SetupBossComponents(leftBoss);
 | 
			
		||||
 | 
			
		||||
                // 오른쪽 스폰 포인트
 | 
			
		||||
                GameObject rightBoss = Instantiate(bossPrefab, spawnPoints[spawnPoints.Length - 1].position, Quaternion.identity);
 | 
			
		||||
                SetupBossComponents(rightBoss);
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                Debug.LogError("스폰 포인트가 2개 이상 필요합니다.");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // // 랜덤한 스폰 포인트 선택
 | 
			
		||||
            // int spawnPointIndex = Random.Range(0, spawnPoints.Length);
 | 
			
		||||
            // GameObject bossPrefab = GetBossPrefabForWave(currentWave);
 | 
			
		||||
            //
 | 
			
		||||
            // GameObject boss = Instantiate(bossPrefab, spawnPoints[spawnPointIndex].position, Quaternion.identity);
 | 
			
		||||
            // monsterPool.Add(boss);
 | 
			
		||||
            // activeMonsters.Add(boss);
 | 
			
		||||
        
 | 
			
		||||
            // 보스 웨이브에서는 자동으로 다음 웨이브로 넘어가지 않음
 | 
			
		||||
            // 보스가 죽으면 Update에서 체크하여 다음 웨이브로 넘어감
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        private void SetupBossComponents(GameObject boss)
 | 
			
		||||
        {
 | 
			
		||||
            MonsterBase monsterBase = boss.GetComponent<MonsterBase>();
 | 
			
		||||
 | 
			
		||||
            Attack attackComponent = boss.GetComponentInChildren<Attack>();
 | 
			
		||||
            Eyesight eyesightComponent = boss.GetComponentInChildren<Eyesight>();
 | 
			
		||||
 | 
			
		||||
            if (attackComponent != null)
 | 
			
		||||
                attackComponent.SetMonsterBase(monsterBase);
 | 
			
		||||
            if (eyesightComponent != null)
 | 
			
		||||
                eyesightComponent.SetMonsterBase(monsterBase);
 | 
			
		||||
 | 
			
		||||
            monsterPool.Add(boss);
 | 
			
		||||
            activeMonsters.Add(boss);
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 
 | 
			
		||||
        private void StartNextWave()
 | 
			
		||||
        {
 | 
			
		||||
            StageManager.Singleton.SetWaveData(currentWave);    // 웨이브 정보 전달.
 | 
			
		||||
@@ -177,7 +129,6 @@ namespace TON
 | 
			
		||||
            
 | 
			
		||||
            if (currentWave > TOTAL_WAVES)
 | 
			
		||||
            {
 | 
			
		||||
                // Debug.Log("모든 웨이브 완료!");
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@@ -199,6 +150,43 @@ namespace TON
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        private void SpawnBossMonster()
 | 
			
		||||
        {
 | 
			
		||||
            GameObject bossPrefab = GetBossPrefabForWave(currentWave);
 | 
			
		||||
 | 
			
		||||
            if (spawnPoints.Length >= 2)
 | 
			
		||||
            {
 | 
			
		||||
                // 왼쪽 스폰 포인트
 | 
			
		||||
                GameObject leftBoss = Instantiate(bossPrefab, spawnPoints[0].position, Quaternion.identity);
 | 
			
		||||
                SetupBossComponents(leftBoss);
 | 
			
		||||
 | 
			
		||||
                // 오른쪽 스폰 포인트
 | 
			
		||||
                GameObject rightBoss = Instantiate(bossPrefab, spawnPoints[spawnPoints.Length - 1].position, Quaternion.identity);
 | 
			
		||||
                SetupBossComponents(rightBoss);
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                Debug.LogError("스폰 포인트가 2개 이상 필요합니다.");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        private void SetupBossComponents(GameObject boss)
 | 
			
		||||
        {
 | 
			
		||||
            MonsterBase monsterBase = boss.GetComponent<MonsterBase>();
 | 
			
		||||
 | 
			
		||||
            Attack attackComponent = boss.GetComponentInChildren<Attack>();
 | 
			
		||||
            Eyesight eyesightComponent = boss.GetComponentInChildren<Eyesight>();
 | 
			
		||||
 | 
			
		||||
            if (attackComponent != null)
 | 
			
		||||
                attackComponent.SetMonsterBase(monsterBase);
 | 
			
		||||
            if (eyesightComponent != null)
 | 
			
		||||
                eyesightComponent.SetMonsterBase(monsterBase);
 | 
			
		||||
 | 
			
		||||
            monsterPool.Add(boss);
 | 
			
		||||
            activeMonsters.Add(boss);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
        private bool IsBossWave(int wave)
 | 
			
		||||
        {
 | 
			
		||||
            return wave == 3 || wave == 6 || wave == 9 || wave == 10;
 | 
			
		||||
@@ -277,7 +265,6 @@ namespace TON
 | 
			
		||||
                    }
 | 
			
		||||
                }  
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            // 일반 웨이브에서는 자동으로 다음 웨이브로 넘어가지 않음
 | 
			
		||||
            // 몬스터가 모두 죽으면 Update에서 체크하여 다음 웨이브로 넘어감
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user