Boss音效
1.Boss战场背景音乐
添加BossBattle音乐到场景
将其拖到AudioManager下的Music下
设置音乐属性
2.AudioManager
添加参数boss音乐
public AudioSource bossBattleMusic; //boss战场音乐
绑定boss音乐到组件
添加播放和停止boss音乐
public void PlayBossMusic()
{
bgMusic.Stop();
bossMusic.Play();
}
public void StopBossMusic()
{
bossMusic.Stop();
bgMusic.Play();
}
3.Boss音乐播放
Player进场时,播放boss音乐
设置隐藏BossBattle节点
新建空节点,命名为BossActivator,战斗启动
添加碰撞检测,设置大小
新建脚本BossActivator.cs,添加组件到BossActivator节点上绑定
添加参数,绑定BossBattle节点
public GameObject theBossBattle; //BossBattle节点
添加碰撞检测函数,Player进入区域,Boss显现,播放boss音乐
private void OnTriggerEnter2D(Collider2D other)
{
if(other.tag == "Player")
{
theBossBattle.SetActive(true);
gameObject.SetActive(false);
AudioManager.sInstance.PlayBossMusic();
}
}
消灭Boss时,添加停止播放boss音乐(BossTankController.cs中)
case bossState.hurt:
if(hurtCounter > 0)
{
hurtCounter -= Time.deltaTime;
if(hurtCounter <= 0)
{
currentState = bossState.moving;
//释放地雷计数器清零
mineCounter = 0;
//Boss被击败,隐藏boss并播放特效
if(isDefeated)
{
theBoss.gameObject.SetActive(false);
Instantiate(explosion, theBoss.position, theBoss.rotation);
//显示胜利平台
winPlatForm.SetActive(true);
//停止播放boss音乐
AudioManager.sInstance.StopBossMusic();
//切换为结束状态
currentState = bossState.ended;
}
}
}
break;
4.Boss音效播放
发射子弹音效(BossBullet.cs中Start()里)
void Start()
{
//播放boss发射子弹音效
AudioManager.sInstance.playSFX(2);
}
子弹撞击音效(BossBullet.cs中,碰撞检测里面,销毁子弹前)
//播放子弹撞击音效
AudioManager.sInstance.playSFX(1);
地雷爆炸音效(BossTankMine.cs中,碰撞检测销毁、爆炸销毁,Destroy之后播放)
//播放地雷爆炸音效
AudioManager.sInstance.playSFX(3);