2014年1月13日月曜日

#07.サウンド再生

サウンド再生ができた。

ボタンを押すとダイアルが回り、サウンド音を再生するところまで実装。
動画をアップしました。


ダイアルテスト動画


設計の仕方をかいつまむと、各種サウンド音色の再生を1つのクラスに集めて実装する感じ。

Unityのサウンド再生の手順は、、
  AudioClipクラスにWavファイル名を紐つける。
  AudioSourceクラスで再生チャンネルを用意する。このクラスには音量、Loop等設定可能。
  AudioSourceクラスのclipにWavファイル(AudioClip)を紐付ける。
  AudioSourceクラスのplayで再生。

注意点は AudioSource1つで単音=1つのWav再生になる。よって多重発生させたい場合は、AudioSourceでチャンネル(インスタンス)をその数だけ用意してWavファイル(AudioClip)を紐付ける。

今回スクリプト起動時に AudioSourceクラスをインスタンス化してロードしているが、その際にそもそもAudioClipのインスタンスにWavファイルのロードでnullが返されて少しハマった。
つまり目的のWavファイルがAssets内で見つからない。

ロードに用いる関数は Resources.Load() なのだが、これがなんと、

  Assets/Resources

配下にターゲットのリソース(Wavファイル)が置いてある前提ぽい。 Assets直下とか、Assets/SoundとかだとNG。必ずAssets/Resources配下に「置け」ということらしい。なんという決め打ちな・・・w。
しかも Assets/Resources は最初は存在しない。「自分で作れ」である。

なので、Assets/Resources/Sound とかはできる。

まさかフォルダ名固定とは予想外だった・・・。


ということで、これも SoundManegerクラスにしてとりあえずボタンを押すと音が出るところまで完了。


0 件のコメント:

コメントを投稿