public void OnStageStart() { // 적 전부를 삭제. GameObject[] enemys = GameObject.FindGameObjectsWithTag("Enemy"); for (int i = 0; i < enemys.Length; i++) { Destroy(enemys[i]); } // 그 외 오브젝트 삭제. TreasureGenerator treasureGenInst = FindObjectOfType(typeof(TreasureGenerator)) as TreasureGenerator; if (treasureGenInst != null) { Destroy(treasureGenInst.gameObject); } GameObject.Find("Map").SendMessage("OnStageStart"); if (!DISABLE_MONSTER_SPAWN) { // 적 스폰. for (int i = 1; i < 5; i++) { Vector3 pos = m_map.GetSpawnPoint(i); if (pos == Vector3.zero) { // 이 타입의 적은 만들지 않는다. continue; } GameObject e = (GameObject)Instantiate(m_enemyPrefab, pos, Quaternion.identity); MonsterCtrl mc = e.GetComponent <MonsterCtrl>(); mc.m_aiType = (MonsterCtrl.AI_TYPE)((int)MonsterCtrl.AI_TYPE.TRACER + i - 1); mc.SetSpawnPosition(m_map.GetSpawnPoint(Map.SPAWN_POINT_TYPE.BLOCK_SPAWN_POINT_PLAYER + i)); mc.SetDifficulty(m_stageNo); mc.SendMessage("OnStageStart"); } } // 스테이지 번호 갱신. Hud.get().SetStageNumber(m_stageNo); // 보물 스폰. Vector3 trasurePos = m_map.GetSpawnPoint(Map.SPAWN_POINT_TYPE.BLOCK_SPAWN_TREASURE); if (trasurePos != Vector3.zero) { Instantiate(m_treasureGen, trasurePos, Quaternion.identity); } Hud.get().DrawStageClear(false); GameObject.Find("Player").SendMessage("OnStageStart"); Hud.get().DrawStageStart(true); HitStop(true); // BGM 재생. m_audio.StopAll(); m_audio.PlayLoop(m_bgmClip, 1.0f, 0.0f); StartCoroutine("StageStartWait"); }