2012年03月02日

[Unity] audio.Play()を並べると、2つ目しか再生されない

効果音が2つあって、

audio.Play();

を使って再生しようとします。
そのとき、以下のようにすると2つ目の効果音しか再生されません。

------------------------------------
var AudioClip01: AudioClip;
var AudioClip02: AudioClip;
audio.clip = AudioClip01;
audio.Play();
audio.clip = AudioClip02;
audio.Play();
------------------------------------

調べてみたら、AudioClip01がAudioClip02に上書き再生されていました。
対策としては、
・AudioClip01とAudioClip02の再生時間の間隔を空ける
・2つのゲームオブジェクトを用意して、それぞれにAudio Sourceを適用する
です。
同時に再生される場合があるなら、後者です。

ということで、缶シューティング では、このようにしています↓

20120302audioplay.png

大砲の音、カウントダウンの音、アイテム取得時の音のための空のゲームオブジェクト
(Audio Sourceコンポーネントを適用)を用意しました。
これだと、アイテムの取得と大砲の発射が同時に起きたとしても音が消されることはありません。

Main Cameraの子供にしているのは、Audio ListnerがMain Cameraにあるからです。
各子供(Audio Source)の相対座標を(0,0,0)にしているので、Audio Listnerと同じ位置にあります。
なので、カメラがどこに移動してもハッキリ効果音が聞こえます。
posted by be-style at 08:13| Comment(0) | Unity
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]