Unity事例ノート

UNITY

サウンド再生のPlayとPlayOneShotの違い

Unityでサウンド再生するスクリプトとして、Play()とPlayOneShot()があります。

Playは再生時に音の重複ができず、PlayOneShotは重複が可能です。

連射のショット音などは、どうしても音が重複するので、PlayOneShotが適しています。

一方、BGMのようにサウンドを最後まで鳴らす際には、Playが向いています。

2つの再生方法について、スクリプトを書いてみましょう。

サウンドデータの準備

音楽ファイルを、インポートします。

プロジェクトビューの中で右クリックして、新しいアセットをインポート。

今回はLaserBeamというmp3ファイルを用意しました。

空のオブジェクトを作成します。

GameObject(空のオブジェクト)に、AudioSourceコンポーネントを追加します。

オーディオクリップに音のファイルを入れ、ゲーム開始時に再生のチェックを外します。

SoundManage.csを作成し、GameObjectに追加します。

Play()のスクリプト

SoundManage.csを記述します。

プレイして音を確認します。

左クリックで連打してみると、音が重ならず、頭出しで再生されています。

Play()は、BGMのようにサウンドをループ再生したい場合などに適しています。

PlayOneShot()のスクリプト

続いて、PlayOneShot()を試してみます。

SoundManage.csを開いて追記します。

左クリックを連打してみると、一曲すべて終了するまで、音が重複して鳴っていることがわかります。

また、PlayOneShot()は、オーディオクリップを指定する必要があります。

PlayOneShot()は、効果音などの短いサウンドを再生する場面に適しています。

SCHOOL教室案内