public void Init(List <MapData> datas)
    {
        UIMapData[] prevDatas = GetComponentsInChildren <UIMapData>();

        foreach (UIMapData data in prevDatas)
        {
            Destroy(data.gameObject);
        }

        for (int i = 0; i < datas.Count; i++)
        {
            UIMapData newData = Instantiate(mapDataPrefab, transform);
            newData.Init(datas[i]);
        }
    }
    //~SoundManager()
    //{
    //    UnloadAllAudioClip();
    //    RemoveListeners();
    //}

    public static void Init()
    {
        //LoggerHelper.Debug("InitSoundManager");

        defaultSoundSource = GameObject.Find("Driver").transform.FindChild(defaultSoundSourceName).gameObject.GetComponent <AudioSource>();
        defaultMusicSource = GameObject.Find("Driver").transform.FindChild(defaultMusicSourceName).gameObject.GetComponent <AudioSource>();

        audioClipBuffer = new Dictionary <int, AudioClip>();

        musicMode            = PlayMusicMode.Repeat;
        backgroundMusicOrder = new List <int>();
        orderIndex           = 0;

        SoundVolume = SystemConfig.Instance.SoundVolume;
        MusicVolume = SystemConfig.Instance.MusicVolume;

        AddListeners();

        LogicSoundManager.Init();

        UIMapData.FormatDataMapToSoundIDUINameMap();
    }