Unity事例ノート

UNITY

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

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

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

▼YouTubeにて、再生音の違いを確認できます。

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

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

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

関連記事:
マウスを押してる間だけ音が鳴る
クリックのタイミングで発射音を出す
ボタンを押せば音が鳴る
ボタンをクリックした時だけ無音にする
触れたタイミングで音を鳴らす
オーディオごとにボリュームを変える
ボタンで複数のサウンドを再生
2つの音を切り替えて鳴らす
2つ以上の音楽ファイルをスクリプトから切り替え
音が鳴り終われば実行する
シーンを遷移しても同じBGMが鳴り続ける
ボリュームを徐々に小さくする

サウンドデータの準備

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

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

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

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

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

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

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

Play()のスクリプト

SoundManage.csを記述します。

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

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

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

PlayOneShot()のスクリプト

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

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

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

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

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

関連記事:
マウスを押してる間だけ音が鳴る
クリックのタイミングで発射音を出す
ボタンを押せば音が鳴る
ボタンをクリックした時だけ無音にする
触れたタイミングで音を鳴らす
オーディオごとにボリュームを変える
ボタンで複数のサウンドを再生
2つの音を切り替えて鳴らす
2つ以上の音楽ファイルをスクリプトから切り替え
音が鳴り終われば実行する
シーンを遷移しても同じBGMが鳴り続ける
ボリュームを徐々に小さくする

SCHOOL教室案内