unity的聲音的使用

之前我寫過一篇很方便使用聲音的管理器
這篇博客全面的介紹幾種播放聲音的方法
1.常見使用方法介紹
(1) Play()  //播放背景音樂(只能播放在同一實際內播放一種音樂)
(2) PlayOnShot()  //播放2D音效
2.使用方法
(1) PlayClipAtPoint()  //播放3D音效

想要正常的產生和聽到聲音必須有監聽器AudioListener
當我們想要控制背景音樂等就可以用 Play() Pause() Stop() 進行控制。

(2) 如果我們需要在同一時間播放多種音樂。 我們就需要用到 PlayClipAtPoint() 或者 PlayOnShot()
  PlayOnShot() 與 PlayClipAtPoint() 區別在於
1. PlayClipAtPoint() 是 Static Method 不需要實例化對象就可以使用.
  2. PlayClipAtPoint() 播放的是 3D 音效,音效大小與攝像機位置有關
   PlayOnShot() 播放的是 2D 音效
 相同點:
  用這兩種方法,
  每個AudioSource都可以同時播放多種音效,
  都可以調節音量大小

音效可以用下述方法來播放:static void PlayClipAtPoint(AudioClip clip,Vector3 position, float volume = 1.0F);
使用AudioSource.PlayClipAtPoint播放聲音,會自動生成一個名爲"One shot audio"的物體,
並自動添加了AudioSource和相應的audioclip,同時播放多個聲音時會生成多個同名的物體,
各聲音的播放互不影響,但缺點是隻能設置音量,位置,
還有一些特殊的聲音效果也不易實現,只能播放一次,播放完成後,One shot audio自動銷燬。
下面是一個PlayClipAtPoint的實例 用起來比較方便

 public int index = 0;
 public AudioClip[] clips;
 void Start()
 {
  index = 0;
  InvokeRepeating("PlaySound", 2.0f, 0.5f);
 }
 void PlaySound()
 {
  if (index < clips.Length)
  {
   AudioSource.PlayClipAtPoint(clips[index], Vector3.zero, 1.0f);
   index++;
  }
   else
  {
   index = 0;
  }
 }

當我們使用時候只要吧clip拖上去就行
在這裏插入圖片描述
可以看出,在只需要播放簡單的音效時,可以使用PlayClipAtPoint來播放,不需要添加AudioSource,不需要獲取各個AudioSource的引用,就可以直接播放聲音。

還有就是InvokeRepeating的作用是在等待第二個參數的時間間隔,調用第一個參數方法 然後再經過第三個參數的時間間隔再次調用

PlayOneShot(Clip,volume);//其中的clip是聲音片段 volume是音量大小

PlayOneShot和PlayClipAtPoint的兩個方法的音量大小這個參數是可以省略不寫的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章