先來說MusicManager,因為我只有作主選單和遊戲內音樂,所以只開兩個AudioClip來用。
再來我使用的辦法是判斷現在的ScenceName為何,若在主選單就播放menuTheme,在遊戲內就播放mainTheme,然後播放音量的大小從AudioManager來決定,但這邊也有寫不好的地方,因為專案很簡單只有選單音樂和遊戲音樂兩種,中間的if可以合併為一個。
然後把所有專案中會使用到的音效放入SoundLibrary裡面,但為了讓音效可以順利播放,在AudioManager裡面先把功能給寫好,之後只要呼叫即可。後面所做的線性內插,是為了讓場景轉換間,背景音樂轉換不會太突兀做到淡入淡出的效果。
中間的PlaySound()是想讓遊戲中敵人受傷或是爆裂物的聲音聽起來有遠近而做的,聲音發出的位置為觸發事件時當前的位置,故主角的位置離聲音源越遠音量會越小,並有左右聲道的效果。
而PlaySound2D()是讓不關場地的聲音播放出來,如破關音效等,這並無任何效果存在。
最後是SoundLibrary,把會用到的音效用類別區隔開來,若分類裡有複數的音源會以隨機的方式播放出來。
使用的方法是在會發出音效的地方加上AudioManager內寫好個功能,例如我在Boss死亡時利用AudioManager的PlaySound()播放在SoundLibrary裡名為BossGolemDead的音效。