public void Init() { AudioClip[] clips = LoadMgr.Instance.LoadAll <AudioClip>(Paths.AUDIO_FOLDER); foreach (var clip in clips) { mClips.Add(clip.name, clip); } mBGAudioSource = gameObject.AddComponent <AudioSource>(); IReader reader = ReadMgr.Instance.GetReader(Paths.CONFIG_AUDIO_VOULME_CONFIG); string audioName = ""; float volume = 0; reader.Count((count) => { for (int i = 0; i < count; i++) { TaskQueueMgr.Instance.AddQueue <string>(() => reader[i][DataKeys.AUDIO_NAME]); TaskQueueMgr.Instance.AddQueue <float>(() => reader[i][DataKeys.AUDIO_Volume]); TaskQueueMgr.Instance.Execute((datas) => { audioName = (string)datas[0]; volume = (float)datas[1]; mVolumes.Add(audioName, volume); }); } // 执行音量设置回调 if (mChangeVolume != null) { mChangeVolume.Invoke(); mChangeVolume = null; } }); }