前回までの作業でゲームとしてはほぼ完成と言ってもよい出来となりました。しかしまだサウンドをつけていないのでプレイしているとちょっと寂しい気がします。
そこでここではBGMや効果音をつけてゲームをより楽しめるようにしてみましょう。
サウンド素材のインポート
まずはじめにサウンド素材をプロジェクトにインポートする必要があります。サウンド素材に関してはネット上に高品質なものが無料配布されていますので、適当に探してダウンロードしインポートしましょう。
今回必要なサウンド素材は次の3つです。
- BGM(ループ再生に対応した音源だとよい)
- ジャンプしたときの効果音
- ゲームオーバー時の効果音
なおサウンド素材を使う場合も配布サイトの利用規約をよく読んでルールを守って使うようにしてくださいね。
サウンドのつけ方
ではここからUnityでのサウンドのつけ方について解説していきます。今回は使うサウンドの種類が少ないので、一番シンプルなやり方でサウンドを再生することにします。
BGM
まずはBGMです。BGMの場合は空のゲームオブジェクトを作り、そこに「AudioSource」コンポーネントをアタッチして設定を行うだけでOKです。
具体的には下の画像のように設定します。
- オーディオクリップ:再生するBGMの音源を登録
- ループ:BGMは繰り返し再生されるのでONにしておく
- ボリューム:
環境にもよりますが、1だと音量が大きすぎるので「0.2」くらいにしておくとよい
これでBGMが再生されるようになります。
効果音
次は効果音ですが、こちらは特定のタイミングで鳴らしたいのでC#スクリプトから制御する必要があります。今回はジャンプとゲームオーバーの時に音を鳴らすため、
- Player
- GameOverTrigger
のC#スクリプトにそれぞれ効果音を鳴らす処理を追記していきましょう。
Player.cs
using UnityEngine; public class Player : MonoBehaviour { [SerializeField] Rigidbody2D rigidBody2D; [SerializeField] Animator animator; [SerializeField] float jumpPower = 10; [SerializeField] float groundCheckRadius = 0.4f; [SerializeField] float groundCheckOffsetY = 0.45f; [SerializeField] float groundCheckDistance = 0.2f; [SerializeField] LayerMask groundLayers = 0; // 追加 [SerializeField] AudioSource audioSource; [SerializeField] AudioClip jumpSound; // 省略 // ジャンプ void Jump() { rigidBody2D.AddForce(jumpPower * Vector2.up, ForceMode2D.Impulse); // 追加 audioSource.PlayOneShot(jumpSound); } // 省略 }
処理を追加できたらプレイヤーのゲームオブジェクトにAudioSourceコンポーネントをアタッチし、次のように設定してください。
- ゲーム開始時に再生:OFF
- ボリューム:0.3
GameOverTrigger.cs
using UnityEngine; public class GameOverTrigger : MonoBehaviour { [SerializeField] GameManager gameManger; // 追加 [SerializeField] AudioSource audioSource; [SerializeField] AudioClip gameOverSound; private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.CompareTag("Player")) { gameManger.GameOver(); // 追加 audioSource.PlayOneShot(gameOverSound); } } }
こちらも処理を追加できたら、ゲームオーバー判定用トリガーのゲームオブジェクトにAudioSourceをアタッチして上と同様に設定を行ってください。
次のページ
これでゲームにサウンドを追加することができました。ゲームとしてはこれで完成となるので、次回はいよいよゲームをビルドして公開できるようにします。