ボタンを押すとダイアルが回り、サウンド音を再生するところまで実装。
動画をアップしました。
設計の仕方をかいつまむと、各種サウンド音色の再生を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 件のコメント:
コメントを投稿