建立音频文件 Audio Clip
- 因为会用到 Resources.Load(),所以要在 Assets 下建立一个名为 Resources 的文件夹。
- 在 Resources 下建立一个存放音频文件的文件夹,例如:Sound。
- 利用 Import New Asset 选取所要导入的音频文件。
建立音频源 Audio Sources
- 音频源就像是一个声音的播放器,用来控制声音的播放。建立的步骤如下:
Unity 2D 学习手札 (二) 声音的简单播放 - 挂载名为 AudioContral 的 Script,用于操控声音的播放。
AudioContral 类
- 要播放声音时,呼叫 PlayAudio,并将档名传入即可。
- nStatus 记录着目前的播放状态,0 表未播放,1 表播放中,2 表已播放完毕。
- 当声音播放中,透过 Update() 侦测是否播完毕,若是,就将 nStatus 改成 2。
- 如果想获得是否播放完毕,要不断的在 Update 中侦测 IsPlayOver。
完整的 AudioContral 代码如下:
using UnityEngine;
using System.Collections;
public class AudioContral : MonoBehaviour {
private AudioSource audioMgr;
private int nStatus = 0;
//-------------------------------------------------------------------------
void Start()
{
audioMgr = GetComponent<AudioSource>();
}
//-------------------------------------------------------------------------
void Update()
{
if (nStatus == 1)
{
nStatus = audioMgr.isPlaying ? 1 : 2;
}
}
//-------------------------------------------------------------------------
public bool IsPlayOver
{
get { return nStatus == 2; }
}
//-------------------------------------------------------------------------
public void PlayAudio( string fname )
{
AudioClip clip = Resources.Load(fname, typeof(AudioClip)) as AudioClip;
nStatus = 1;
audioMgr.PlayOneShot(clip);
}
//-------------------------------------------------------------------------
public void StopAudio()
{
nStatus = 0;
audioMgr.Stop();
}
//-------------------------------------------------------------------------
}