天天看点

Unity 2D 学习手札 (二) 声音的简单播放

建立音频文件 Audio Clip

  1. 因为会用到 Resources.Load(),所以要在 Assets 下建立一个名为 Resources 的文件夹。
  2. 在 Resources 下建立一个存放音频文件的文件夹,例如:Sound。
  3. 利用 Import New Asset 选取所要导入的音频文件。

建立音频源 Audio Sources

  1. 音频源就像是一个声音的播放器,用来控制声音的播放。建立的步骤如下:
    Unity 2D 学习手札 (二) 声音的简单播放
  2. 挂载名为 AudioContral 的 Script,用于操控声音的播放。

AudioContral 类

  1. 要播放声音时,呼叫 PlayAudio,并将档名传入即可。
  2. nStatus 记录着目前的播放状态,0 表未播放,1 表播放中,2 表已播放完毕。
  3. 当声音播放中,透过 Update() 侦测是否播完毕,若是,就将 nStatus 改成 2。
  4. 如果想获得是否播放完毕,要不断的在 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();   
     }    
     //-------------------------------------------------------------------------
}