同時播放多個聲音

更新頁 :
頁面創建日期 :

驗證環境

窗戶
  • 視窗 11
統一編輯器
  • 2021.3.3f1
輸入系統包
  • 1.3.0

此提示的先決條件

作為此提示描述的前提,已預先進行了以下設置。

關於樣品中包含的材料

音效是從以下網站借來的。

關於音訊檔

可以使用 Unity 的標準功能播放以下音訊檔案格式: 請提前準備,因為它將在這些提示中使用。

  • 波浪 (.wav)
  • 奧格沃比斯 (.ogg)
  • MPEG 第 3 層 (.mp3)

有關更多資訊,請參閱官方 Unity 文件。

關於多個同時播放音訊

在前面的提示中,我們使用AudioSource播放音訊檔,但是當我們嘗試發出單個聲音和多個聲音時,之前的聲音消失了。 例如,如果遊戲中有兩個爆炸,當第二個爆炸產生聲音效果時,第一個聲音效果消失是不自然的。 本節介紹如何在彼此之上多次播放相同的聲音。

同時播放音訊的步驟

在這裡,我將從我創建新專案的角度進行解釋,但是如果您在一定程度上瞭解Unity,則可以僅剪切相關部分並記住它們。

這一次,每次按兩下按鈕時都會播放音效。 創建UI,如下所示。 細節是適當和好的。

通過將聲音檔拖放到專案中來添加聲音檔。

將音訊源添加到層次結構。 在這種情況下,您不會將音訊剪輯直接設置為音訊源。

添加腳本。 ButtonEvent 將名稱保留為 。

文稿如下所示:

using UnityEngine;

public class ButtonEvent : MonoBehaviour
{
  [SerializeField] private AudioSource AudioSource;

  /// <summary>音声データ。</summary>
  [SerializeField] private AudioClip AudioClip;

  public void OnClickPlay()
  {
    // オーディオを再生します
    AudioSource.PlayOneShot(AudioClip);
  }
}

AudioSource 將其視為用於控制音訊的類,就像前面的提示一樣。

AudioClip 是存儲音訊數據的類。 您可以在此處設定音訊檔。

AudioSource.PlayOneShot 如果將其作為參數傳遞給該方法,則可以播放 AudioClip 音訊數據。 通過此方法播放的音訊是獨立控制的。 如果再次調用此方法,它將作為與前一個聲音分開的新語音播放。 因此,每次調用此方法時都可以再次播放聲音。

將腳本附加到事件系統。

對於「音訊源」,設置添加到層次結構的「音頻源」。。

對於「音訊剪輯」,請從專案中設置音訊檔。

最後,將該方法設置為按鈕的單擊事件。

運行遊戲並按下按鈕。 我認為音效會播放。 此外,如果您在播放過程中再次按下該按鈕,將播放新聲音而不會消失之前的聲音。

AudioClip這樣,現在可以通過 . 這使得遊戲可以在不自然地消失之前的聲音的情況下進行遊戲。

使用音訊剪輯播放時的缺點

AudioClip 我能夠通過使用 播放音訊來相互播放音訊,但相反,會出現以下缺點。

聲音變得嘈雜

如您所見,如果您連續按兩下該按鈕,聲音會重疊,播放的諧波會變得越來越響亮。 例如,如果您想在遊戲中攻擊擊中時播放聲音效果, 如果在未採取任何措施的情況下同時發生多次命中,則可能會以異常音量播放。