Unityで敵キャラクター出現時に効果音を鳴らしてみる

前回は敵キャラクター出現時にエフェクトを表示しましたが、

Unityのエフェクトを使い、敵キャラの出現をわかりやすくする
Unityのエフェクトを使い敵がフィールドに出現した時に演出をして出現した事がわかるようにします
今回はUnityで効果音を鳴らしてみようと思います。

例の如く(龍が如く・・・・)Asset Storeで効果音を探してみます。

オーディオ→効果音→その他効果音→Fantasy SFX for Distort Texture Effect

をインポートしてみました。

msfx_chrono_gale_sighを敵キャラ出現時に鳴らしてみます。

スポンサーリンク

効果音の鳴らし方

効果音を鳴らすには

  1. インスペクタ上にAudio Sourceのコンポーネントを追加し、そこにAudioClipを設定して鳴らす方法
  2. インスペクタ上にAudio Sourceのコンポーネントを追加し、スクリプト上からAudioClipを鳴らす方法
  3. スクリプト上でAudio Sourceのコンポーネントを追加し、スクリプト上からAudioClipを鳴らす方法

があります。
今回は敵キャラが登場時に鳴らすだけなので、1番上の方法を取ります。

効果音の追加と設定

敵キャラのプレハブにAdd ComponentからAudio→Audio Sourceをクリックします。

AudioSourceの設定を変更する

上のようにAucio Clipに鳴らしたい音声を指定し、Play On Awakeにチェックを入れます。

Play On Awakeはこのオブジェクトが登場した時に鳴らすという意味です。
その下のLoopのチェックは外します。登場時だけ鳴らしたい為、繰り返し再生されるのを防ぎます。

これで敵キャラ出現時に効果音を鳴らす事が出来ます。
Unityのプレイボタンを押して試してみましょう。

これで完成ですが・・・、あまりに早く終わってしまったので、後々の事も考えてスクリプト上から効果音を鳴らす方法もやっておきましょう。

スクリプトから効果音を鳴らす

スクリプトからAudio Sourceの追加をし効果音を鳴らすので、
さきほど追加したAudio Sourceのコンポーネントのチェックを外します。
そしてAppearSEというスクリプトを作り追加します。

効果音を鳴らすAppear SEスクリプトを追加する

上の画像のような感じに設定します。すでにApperSEという効果音を設定するpublic変数の値が設定されていますが、これは後で追加するので気にしないでください。

鳴らす効果音はpublicにしてインスペクタで設定出来るようにし、Audio Sourceは設定されていないので、Start関数内でAddComponentを使って追加しています。

AudioSourceの機能が追加されたら、それを使って音声を鳴らします。
PlayOneShotで鳴らしたい音声クリップを指定すれば音声が流れます。

この場合Start関数内にあるので敵キャラ登場時(スクリプト開始時)に1回だけ音声の再生をするということになります。

先ほどの1のやり方と違って、AudioClipを複数用意すれば鳴らしたい音声を選んで鳴らす事が出来るようになります。

Audio Sourceは音声を鳴らす為に必要ですが、この音声を聞く為にはAudio Listenerという耳に当たるものがないと鳴っているのがわかりません。

音声を聞く為に必要なもの

音声を聴く為にはAudio Listenerが必要なんですが、追加した覚えはないけど?という方もいると思います。

が、実は最初から設定されていました。

それが設定されているのが、Main Cameraです。
Main CameraのAudio Listenerのチェックを外すと音声が聞こえなくなります。

これで敵キャラ出現時に効果音を鳴らす事が出来るようになりました。