public override void Show()
    {
        base.Show();

        // 객체 캐싱
        gameAccumulator = GameManager.Instance.GetCurrentSceneManager <InGameSceneManager>().GameAccumulator;
        spawnManager    = GameManager.Instance.GetCurrentSceneManager <InGameSceneManager>().SpawnManager;
        player          = GameManager.Instance.GetCurrentSceneManager <InGameSceneManager>().Player;

        // 스테이지 보너스 골드 계산
        gameAccumulator.Gold += (ItemDropManager.GOLD_GET_MIN_VALUE * (spawnManager.Wave.stageCount - 1)) + player.KillCount;
        // 획득 골드 저장
        //GameManager.Instance.Gold += gameAccumulator.Gold;

        GameManager gm = GameManager.Instance;

        // 획득 골드 저장
        gm.DataBase.SaveData.gold += gameAccumulator.Gold;

        // 수류탄, tnt 초기화
        SaveData saveData = gm.DataBase.SaveData;

        saveData.grenadeCount = 0;
        saveData.tntCount     = 0;

        // 랭킹 데이터 저장
        saveData.rankDatas.Add(new RankData(
                                   spawnManager.Wave.stageCount - 1,
                                   gameAccumulator.Gold,
                                   player.KillCount
                                   ));
        // 랭킹 데이터 내림차순 정렬
        saveData.RankDataSort();
        // 데이터가 10개를 초과한 경우 가장 마지막 데이터 제거
        if (saveData.rankDatas.Count > 10)
        {
            saveData.rankDatas.RemoveAt(saveData.rankDatas.Count - 1);
        }

        // 구입 버프 초기화
        saveData.buffDatas.Clear();

        // 저장
        gm.DataBase.Save();

        // 적용 버프 초기화
        gm.BuffManager.ResetBuff();
    }
    /// <summary>
    /// 아이템 획득 처리
    /// </summary>
    /// <param name="acquireType">획득할 아이템 타입</param>
    /// <param name="gainer">아이템 획득자</param>
    public void TakeItem(AcquireType acquireType, Player gainer)
    {
        int value = 0;

        // 아이템 타입에 따라 획득량 증가
        switch (acquireType)
        {
        case AcquireType.BULLET_ITEM:
            // 주무기가 없는 경우 리턴
            if (gainer.MainGun == null)
            {
                return;
            }

            // 불렛 타입에 따른 총알 수 증가량 변경
            switch (gainer.MainGun.BulletType)
            {
            case Gun.BulletStyle.RIFLE:
                value = RIFLE_GET_VALUE;
                break;

            case Gun.BulletStyle.SNIPE:
                value = SNIPE_GET_VALUE;
                break;

            case Gun.BulletStyle.SHOTGUN:
                value = SHOTGUN_GET_VALUE;
                break;

            case Gun.BulletStyle.STRAY:
                value = STRAY_GET_VALUE;
                break;
            }

            gainer.MainGun.ReloadableBulletCount += value;

            break;

        // 힐 아이템
        case AcquireType.HEAL_ITEM:
            value = HEAL_PACK_VALUE;
            gainer.OnTakeHeal(value);
            break;

        // 수류탄
        case AcquireType.GRENADE_ITEM:
            value = THROW_ITEM_GET_VALUE;
            gainer.GrenadeCount += value;
            break;

        // TnT
        case AcquireType.TNT_ITEM:
            value            = TNT_ITEM_GET_VALUE;
            gainer.TntCount += value;
            break;

        // 골드
        case AcquireType.GOLD_ITEM:
            int ran = Random.Range(GOLD_GET_MIN_VALUE, GOLD_GET_MAX_VALUE + 1);
            value = ran;
            GameAccumulator ga = GameManager.Instance.GetCurrentSceneManager <InGameSceneManager>().GameAccumulator;
            ga.Gold += value;
            break;
        }

        // 획득 UI 노출
        GameManager.Instance.GetCurrentSceneManager <InGameSceneManager>().AcquireUIManager.ActivatedInfoUI(value, gainer, acquireType);
    }
    /// <summary>
    /// 경험치바 업데이트
    /// </summary>
    public void UpdateExpBar()
    {
        GameAccumulator ga = GameManager.Instance.GetCurrentSceneManager <InGameSceneManager>().GameAccumulator;

        expBar.fillAmount = (float)ga.Exp / (float)ga.MaxExp;
    }