Unity——音乐、音效

在游戏运行的过程中,音效的播放时机与游戏当前内容密切相关,而且随着场景的变化、剧情的推进,背景音乐也需要适时切换,所以恰当地控制音乐和音效的播放非常重要 。音乐和音效的播放、停止、切换和音量变化等,都需要由脚本控制 。
一、用脚本控制音乐播放
简单来说只要有Audio 组件和音频资源就可以播放音乐了 。但通常还需要停止、切换音乐等,下文用一个示例脚本说明音乐的播放方法,步骤如下
创建脚本,挂到任意物体上创建音源物体,默认物体名为Audio
【Unity——音乐、音效】脚本内容如下

Unity——音乐、音效

文章插图
using System.Collections;using System.Collections.Generic;using UnityEngine;public class TestAudio : MonoBehaviour{//从外部指定声音片段public List clips;//音源组件AudioSource audio;void Start(){//获取音源组件GameObject go = GameObject.Find("Audio Source");audio = go.GetComponent();//先停止播放audio.Stop();//不循环audio.loop=false;}void Update(){if(Input.GetKeyDown(KeyCode.Alpha1)){//切换到音乐0并播放audio.clip=clips[0];audio.Play();}if (Input.GetKeyDown(KeyCode.Alpha2)){//切换到音乐1并播放audio.clip = clips[1];audio.Play();}//按空格键 暂停/继续if (Input.GetKeyDown(KeyCode.Space)){if(audio.isPlaying){audio.Pause();}else{audio.UnPause();}}}}
脚本功能是按数字播放第一段音频,按播放第二段,按空格可以暂停或继续播放
脚本用到了一个公开的列表字段保存音频资源 。要为变量clips赋初始值 。
Unity——音乐、音效

文章插图
上面演示了Audio 组件的常用方法,音源的属性都可以用脚本修改
二、添加音效
在Unity中使用音乐和音效的方法是相同的,但有一些关键点要注意 。
首先,一个音源同一时刻只能播放一个音频 。换句话说,如果有10个音效同时播放,就需要10个音源 。因此一般游戏中的每个角色身上都带有一个Audio 组件,如敌人会叫喊,主角会挥动武器,那么就在每个敌人和主角身上都挂一个Audio 组件 。如果主角的武器音效、跳跃音效和受伤音效可能会同时播放,那么可以在主角身上挂3个Audio 组件,分别对应一种音效(当然,也可以把Audio 组件放在其他物体上) 。
其次,添加音效的难点在于音效播放的时机,音效比角色动作稍早或稍晚播放都不好 。而且根据游戏逻辑,同样的动作有时需要配合音效,又是不需要,那么弄清楚播放音效的条件也很重要 。