(日記のまとめページはこちら:https://wakky.tech/unity-baseball-game/)
今回は前回に引き続き「音」をテーマにして、バットにボールが当たった時の効果音を追加したいと思う。まず、付加する効果音を以下のフリー素材サイトからダmp3音源をダウンロードして使わせて頂いた。今回は「野球・木製バット・打撃03」を使用。素晴らしい効果音をありがとうございますm(_ _)m
ダウンロードした音源は、Assetsタブにドラッグ&ドロップしておく。次に、以下のScriptを作ってBatオブジェクトに付加した。
OnCollisionEnterで衝突を検知して、audioClipをauidoSource.PlayOneShotで再生する仕組み。if文でcollision.gameObject.name == “Ball”の条件を付けて、ボールとぶつかったときだけ音を鳴らすようにしている。あとはInspectorペインから、定義したseBatに先ほどダウンロードした音源をドラッグ&ドロップ。
これでバッティング時に音が出る・・・はずだったけど、実行時に以下のエラーが発生。
MissingComponentException: There is no ‘AudioSource’ attached to the “Bat” game object, but a script is trying to access it.
どうもAudioSource ComponentをBatオブジェクトに追加する必要があるらしい。ということで、InspectorペインのAdd ComponentからAudio→Audio Sourceを選択して、Audio Source Componentを追加。
Audio Componentの設定は基本的にデフォルトのままで良いが、「Play on Awake」だけチェックを外した(外さないとシーンの開始時に音が鳴ってしまうため)これで無事にバッティング時の効果音を追加できた。今後も同じ要領で効果音を追加していきたい。