コード例 #1
0
ファイル: SoundMgr.cs プロジェクト: 602147629/GDGJ_Script
        private void PlayAfterLoad(AudioClip clip)
        {
            if (null != clip)
            {
                //必须保证音效ID唯一
                string soundId = clip.name;

                if (!clipDictionary.ContainsKey(soundId))
                {
                    clipDictionary.Add(soundId, clip);
                }

                //获得可以播放的player
                SoundPlayer player = GetUnusedPlayer();
                if (null == player)
                {
                    player = new SoundPlayer(clip);
                    soundList.Add(player);
                }
                else
                {
                    player.Clip = clip;
                }

                AudioSetting audioSetting = clipSettingDictionary[soundId];
                audioSetting.IsLoading = false;
                player.Loop            = audioSetting.Loop;
                player.Volumn          = audioSetting.Volumn;
                player.Delay           = audioSetting.Delay;
                player.Mute            = mute;
                player.Play();
            }
        }
コード例 #2
0
ファイル: SoundMgr.cs プロジェクト: 602147629/GDGJ_Script
        /// 音频播放控制,支持多文件同时播放
        /// audioFileName不能带后缀
        private void PlayClip(string soundId, string assetBundleName, bool loop, float volumn, float delay = 0f)
        {
            try
            {
                if (StringUtils.isEmpty(soundId))
                {
                    return;
                }

                AudioSetting audioSetting = new AudioSetting();
                audioSetting.Loop              = loop;
                audioSetting.Volumn            = volumn;
                audioSetting.Delay             = delay;
                audioSetting.IsLoading         = true;
                clipSettingDictionary[soundId] = audioSetting;

                //将音频文件转换为AudioClip
                if (!clipDictionary.ContainsKey(soundId))
                {
                    AssetManager.Instance.LoadAsset <AudioClip>(assetBundleName, PlayAfterLoad, soundId);
                }
                else
                {
                    PlayAfterLoad(clipDictionary[soundId]);
                }
            }
            catch (Exception e)
            {
                Log.warin(this, e.StackTrace);
            }
        }