예제 #1
0
        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;
                }
            });
        }