Unity事例ノート

UNITY

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

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

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

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

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

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

関連記事:
【Unity C#】マウスを押してる間だけ音が鳴る
【Unity C#】クリックのタイミングで発射音を出す
【Unity C#】触れたタイミングで音を鳴らす

サウンドデータの準備

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

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

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

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

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

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





Play()のスクリプト

まずはPlay()を使ったスクリプトを書いてみます。

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

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

左クリックで連射してみると、音が重ならずに出ていることがわかります。

PlayOneShot()のスクリプト

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

SoundManage.csを開き、コードを追記しましょう。

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

左クリックで連射してみると、音が重複して鳴っていることがわかります。

関連記事:
【Unity C#】マウスを押してる間だけ音が鳴る
【Unity C#】クリックのタイミングで発射音を出す
【Unity C#】触れたタイミングで音を鳴らす