【Unity】Unityで3D野球盤をつくろう日記 20日目:バッティング時の効果音をつける(オブジェクト衝突時の効果音を付ける)

投稿日:2017年9月1日
最終更新日:2019年1月19日

(日記のまとめページはこちら:https://wakky.tech/unity-baseball-game/

今回は前回に引き続き「音」をテーマにして、バットにボールが当たった時の効果音を追加したいと思う。まず、付加する効果音を以下のフリー素材サイトからダmp3音源をダウンロードして使わせて頂いた。今回は「野球・木製バット・打撃03」を使用。素晴らしい効果音をありがとうございますm(_ _)m

https://on-jin.com/

ダウンロードした音源は、Assetsタブにドラッグ&ドロップしておく。次に、以下のScriptを作ってBatオブジェクトに付加した。

https://gist.github.com/WakkyFree/99bc0d0d7fea4ac37ff381134a873caf/40596ab7371402ffc8450d6c5f93619d633c8f6a

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」だけチェックを外した(外さないとシーンの開始時に音が鳴ってしまうため)これで無事にバッティング時の効果音を追加できた。今後も同じ要領で効果音を追加していきたい。


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください