播放、暫停或停止單個聲音效果
驗證環境
- 窗戶
-
- 視窗 11
- 統一編輯器
-
- 2021.3.3f1
- 輸入系統包
-
- 1.3.0
此提示的先決條件
作為此提示描述的前提,已預先進行了以下設置。
關於樣品中包含的材料
音效是從以下網站借來的。
關於音訊檔
可以使用 Unity 的標準功能播放以下音訊檔案格式: 請提前準備,因為它將在這些提示中使用。
- 波浪 (.wav)
- 奧格沃比斯 (.ogg)
- MPEG 第 3 層 (.mp3)
有關更多資訊,請參閱官方 Unity 文件。
關於播放聲音效果
有幾種播放音效的方法,但在這裡我們想引導您完成一種在使用標準功能時播放它們的簡單方法。
內容是排列一個按鈕,並通過按兩下該按鈕來播放、暫停和停止。 在實際遊戲中,您可以實現按鈕以外的相同過程。
首先,放置一個按鈕來播放如圖所示的音效。
通過將準備好的聲音檔拖放到專案中來添加該檔。
接下來,將「音頻源」添加到層次結構中。
選擇建立的音訊源時,「音訊源」元件具有一個音訊剪輯,您可以將專案中的音訊檔拖放到其中以進行配置。
順便說一句,如果您按原樣啟動遊戲,您設置的音效會突然播放。 這是因為選取了「在遊戲開始時播放」。 聲音效果不太可能突然播放,因此請取消選中此檢查。
接下來,創建一個腳本。 SoundPlayer
將名稱保留為 。
文稿如下所示:
using UnityEngine;
public class SoundPlayer : MonoBehaviour
{
[SerializeField] private AudioSource AudioSource;
public void OnClickPlay()
{
// オーディオを再生します
AudioSource.Play();
}
public void OnClickPause()
{
// オーディオを一時停止します
AudioSource.Pause();
}
public void OnClickStop()
{
// オーディオを停止します
AudioSource.Stop();
}
}
AudioSource
稍後將從編輯器中設置。 此音訊源是具有先前設置的音效的音訊源。
AudioSource
、 和方法,因此您可以分別播放、暫停和Play
Pause
Stop
停止。
您可以將文稿附加到音訊源,但在本例中,您需要將其附加到事件系統。 確保腳本填充了之前創建的音訊源。
現在將每個方法分配給三個按鈕的按兩下事件。
完成後,運行遊戲並查看音效是否播放。
播放、暫停和停止是常用術語,因此您無需詳細編寫它們,但我認為它們的工作原理如下。
- 按兩下播放按鈕時,音效僅播放一次並播放到最後。
- 在播放過程中,按兩下暫停按鈕以停止播放聲音
- 當您在暫停時按下播放按鈕時,聲音將從停止位置播放。
- 在播放過程中按下停止按鈕以停止播放聲音
- 停止播放時按下播放按鈕以從頭開始播放
- 在暫停期間按兩下停止按鈕將釋放暫停的位置,下次您玩遊戲時,它將從頭開始。
- 如果在播放過程中按下播放按鈕,則會停止當前播放的聲音並從頭開始播放。
單獨使用音訊源的缺點
有一個解決方法,但此提示具有以下缺點。 我們將在另一個提示中介紹這些解決方案。
不能同時播放兩個或多個相同的聲音
您可以通過多次按下播放按鈕來檢查這一點,但是當您播放新聲音時,以前的聲音會消失。 說到缺點,這是一個缺點,但相反,如果你在彼此之上播放相同的聲音,音量會非常響亮,所以從某種意義上說,這是一個優勢,它可以阻止它。 但是,之前的聲音仍然會消失,因此根據聲音的類型,它會不自然。
您必須擁有與要播放的聲音類型一樣多的音訊源
由於在音訊源中只能設置一個音訊剪輯,因此您需要提供音訊源,因為您需要盡可能多的聲音。 您也可以只準備一個音訊源,並在播放其他聲音時更改音訊剪輯。 這是不自然的,因為由於無法同時播放之前寫入的兩個或多個相同聲音的問題,先前的聲音消失了。