From 45faee0adf3b5bc2ac051c2a0e08bb4ecf738aac Mon Sep 17 00:00:00 2001 From: wangguan <wangguan@kt007.com> Date: Thu, 17 Dec 2020 14:31:17 +0800 Subject: [PATCH] Merge commit 'fe59d1a97e80284315bcdfa18a49059b38dfd137' --- Assets/Scripts/Music/AudioSourceManager.cs | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 105 insertions(+), 11 deletions(-) diff --git a/Assets/Scripts/Music/AudioSourceManager.cs b/Assets/Scripts/Music/AudioSourceManager.cs index 9c1b1af..a2d6892 100644 --- a/Assets/Scripts/Music/AudioSourceManager.cs +++ b/Assets/Scripts/Music/AudioSourceManager.cs @@ -1,4 +1,5 @@ -using System.Collections; +using System.Security.Cryptography.X509Certificates; +using System.Collections; using System.Collections.Generic; using UnityEngine; @@ -19,7 +20,16 @@ WaterTAttack,//水攻击 WoodTAttack,//木攻击 LightningSkill,//电技能 - FireSkill//火技能 + FireSkill,//火技能 + FinalScore,//结算分数滚动效果 + BossWaterSkill,//气泡 + WaterTowerSkill,//冰淇淋技能 + WoodSkill,//玉米狙击子弹 + Upgrade,//合成 + Gold,//金币 + GuideOpenBox,//新手引导开宝箱 + OpenTowerPlace,//开启塔位 + } public class AudioSourceManager : MonoBehaviour { @@ -65,7 +75,7 @@ return tmpAudioSource; } - private AudioClip LoadAudioClip(string musicName) + public AudioClip LoadAudioClip(string musicName) { if (clipDic.ContainsKey(musicName)) return clipDic[musicName]; @@ -75,12 +85,11 @@ clipDic.Add(musicName, au); return au; } - } public void Play(AudioEnum en) { - Debug.Log("播放了音效:"+en); + // Debug.Log("播放了音效:"+en); switch (en) { case AudioEnum.BGM1: @@ -118,21 +127,45 @@ Play("放下宝石", true); break; case AudioEnum.FireTAttack: - Play("火攻击", true); + Play("火攻击", true, 0.5f); break; case AudioEnum.WaterTAttack: - Play("水攻击", true); + Play("水攻击", true, 0.5f); break; case AudioEnum.WoodTAttack: - Play("木攻击", true); + Play("木攻击", true, 0.5f); break; case AudioEnum.LightningSkill: Play("电技能", true); break; case AudioEnum.FireSkill: - Play("火技能", true); + Play("火焰喷射", true); break; - + case AudioEnum.FinalScore: + Play("结算分数", true); + break; + case AudioEnum.BossWaterSkill: + //Play("气泡", true); + PlayBossWaterSkill("气泡"); + break; + case AudioEnum.WaterTowerSkill: + Play("冰淇淋技能", true); + break; + case AudioEnum.WoodSkill: + Play("玉米狙击子弹", true); + break; + case AudioEnum.Upgrade: + Play("合成", true); + break; + case AudioEnum.Gold: + Play("金币", true); + break; + case AudioEnum.GuideOpenBox: + Play("新手引导开宝箱", true); + break; + case AudioEnum.OpenTowerPlace: + Play("开启塔位", true); + break; } } @@ -140,7 +173,7 @@ Dictionary<string, AudioClip> clipDic; - private void Play(string musicName, bool isOneShot) + private void Play(string musicName, bool isOneShot, float volume = 1.0f) { AudioClip au = LoadAudioClip(musicName); AudioSource tmpAudioSource; @@ -158,12 +191,73 @@ else { tmpAudioSource = audioSourceList[0]; + tmpAudioSource.clip = null; tmpAudioSource.clip = au; tmpAudioSource.loop = true; } tmpAudioSource.Play(); + tmpAudioSource.volume = volume; } + AudioSource bossWaterSkillAS; + /// <summary> + /// BOSS气泡技能 38秒钟,所以不用循环播放 + /// </summary> + /// <param name="musicName"></param> + /// <param name="volume"></param> + private void PlayBossWaterSkill(string musicName, float volume = 1.0f) + { + Debug.Log("BOSS气泡技能 38秒钟,所以不用循环播放"); + + AudioClip au = LoadAudioClip(musicName); + bossWaterSkillAS = GetAudioSource(); + bossWaterSkillAS.clip = au; + bossWaterSkillAS.loop = false; + + bossWaterSkillAS.Play(); + bossWaterSkillAS.volume = volume; + } + + /// <summary> + /// BOSS气泡技能结束 + /// </summary> + public void StopBossWaterSkill() + { + Debug.Log("BOSS气泡技能结束"); + if (bossWaterSkillAS != null) + { + bossWaterSkillAS.Stop(); + bossWaterSkillAS.clip = null; + if (audioSourceList.Count > 5) + { + audioSourceList.Remove(bossWaterSkillAS); + Destroy(bossWaterSkillAS); + bossWaterSkillAS = null; + } + } + } + + /// <summary> + /// 暂停背景音乐 + /// </summary> + public void StopBGAudio() + { + if (audioSourceList[0].isPlaying) + { + audioSourceList[0].Stop(); + } + } + + /// <summary> + /// 继续背景音乐 + /// </summary> + public void RestartBGAudio() + { + if (!audioSourceList[0].isPlaying) + audioSourceList[0].Play(); + } + + /// <summary> /// 销毁音效 /// </summary> -- Gitblit v1.9.1