Luna为游戏添加音效
目录
Luna——为游戏添加音效
1、在GameManager中声明
public AudioSource audiosource;
public AudioClip normalClip;
public AudioClip battleClip;
2、在GameManager资产中挂载“Audio Source”组件,并将该组件挂载到资产脚本中的声明对象
这就可以根据不同场景的需要切换背景音乐了,只是靠代码逻辑来执行而已。
3、在GameManager中声明两种音频播放方式
public void playmusic(AudioClip audioClip)
{
// 检查当前音频源的音频剪辑是否与传入的音频剪辑不同
if(audiosource.clip != audioClip)
{
// 如果不同,则将音频源的音频剪辑设置为传入的音频剪辑
audiosource.clip = audioClip;
// 播放音频
audiosource.Play();
}
}
public void playsound(AudioClip audioClip)
{
// 检查传入的音频剪辑是否有效(不为null)
if (audioClip)
{
// 使用AudioSource的PlayOneShot方法播放音频剪辑
audiosource.PlayOneShot(audioClip);
}
}
背景音乐由GameManager脚本进行控制,而一些特定音效则是自己在脚本中需要时添加即可
如:进入战斗场景切换战斗背景音乐
public void EnterOrExitBattle(bool enter=true,int addkillNum=0)
{
UImanager.instance.BattleUIshoworhide(true);
battleground.SetActive(enter);
monsterHP = 50;
if (!enter)
{
killNum += addkillNum;
if (killNum > 0)
{
DestroyMonster(monsterGo);
}
playmusic(normalClip);
if (lunaCurrentHP <= 0)
{
lunaCurrentHP = 100;
lunaCurrentMP = 0;
monsterGo.transform.position += new Vector3(0, 2, 0);
}
}
else
{
playmusic(battleClip);
}
enterBattle = enter;
}
如luna攻击时,触发战斗音效,在Battlecontrol中声明音效
public AudioClip attacksound;
public AudioClip lunaattacksound;
public AudioClip monsterAttacksound;
public AudioClip skillsound;
public AudioClip RecoverHPsound;
public AudioClip hittensound;
public AudioClip diesound;
public AudioClip monsterDieSound;
IEnumerator performAttacklog()
{
UImanager.instance.BattleUIshoworhide(false);
lunaBattleAnimator.SetBool("move state", true);
lunaBattleAnimator.SetFloat("move value", 1);
lunaTrans.DOLocalMove(monsterInitPos + new Vector3(1, 0, 0), 0.5f).OnComplete(
() =>
{
GameManager.instance.playsound(attacksound);
GameManager.instance.playsound(lunaattacksound);
lunaBattleAnimator.SetBool("move state", false);
lunaBattleAnimator.SetFloat("move value", 0);
lunaBattleAnimator.CrossFade("attack", 0);
monsterSr.DOFade(0.3f, 0.2f).OnComplete(() => { JudgeMonsterHP(-20); });
}
);