Unityで音楽・サウンドを再生したいんだけど??
どうも、Linです。水で粘っています。
誰でも簡単にゲームを作れてしまうゲームエンジンのUnity。
「UnityではじめるC# 基礎編」
という書籍でUnityの使い方の基礎を勉強していたところ、
音楽・サウンドの再生
という方法をマスターしましたので、その方法を備忘録も兼ねて書いておきます。
Unityのゲームで音楽を再生させたい方は参考にしてみてくださいね。
Unityで音楽・サウンドを再生する方法
まず最初に、Unityでサウンドを再生させるための基礎を振り返っていきましょう。
Unityで音楽を再生するためには、
音源を付与したいゲームオブジェクトに「Audio Source」というコンポーネントを追加し、
サウンドを拾って欲しいゲームオブジェクトには「Audio Listener」というコンポーネントが必要になってきます。
この様子を図で表すとこうなります↓↓

今回は例として、クリックすると、映画ララランドのテーマ曲「Another Day of the sun」が流れ出すピアノを作ってみたいと思います。

Step1. AudioSourceコンポーネント追加
まずは、音源となるゲームオブジェクトにAudioSourceコンポーネントを追加しましょう。
今回はピアノのゲームオブジェクトに音源を付与したいので、「piano」にAudioSourceコンポーネントを追加していきます。

Step2. 音楽ファイルをプロジェクトフォルダ内に格納
音源にしたい音楽ファイルをプロジェクトフォルダ内に格納します。
Asset >> Import New Asset
と進み、追加してあげましょう。

Step3. Audio Clipに音楽ファイルを設定
AudioSourceコンポーネントのAudioClipに、音楽ファイルを設定します。
AudioSourceコンポーネントのAudioClipにドラッグ&ドロップしてみましょう。

これで音を出す側の設定は終了です。
Step4. AudioListenerの確認
続いては、音を聴く側のAudioListenerの確認をしていきましょう。
Main CameraにはAudioListenerコンポーネントがすでに付いているはず。

ってことで、AudioListenerコンポーネントを新たに付与する必要はありませんね。
Step5. プログラムを書く笑
最後に、Unityでサウンドを再生するプログラムを書いてあげます。
まずはピアノにアタッチする「Piano.cs」というスクリプトを作成します。

まず最初に、
- Audio Clip型の変数(音楽ファイルを指定する)
- Audio Source型の変数(AudioSourceコンポーネントを取得する)
を宣言します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Piano : MonoBehaviour { public AudioClip pianoSound; private AudioSource audioSource; // Use this for initialization void Start () { } // Update is called once per frame void Update () { } } |
続いて、オーディオソースのコンポーネントを取得して代入してあげます。
1 2 3 |
void Start () { audioSource = gameObject.GetComponent<AudioSource> (); } |
あとはクリックしたらオーディオソースの音楽を再生する指令を書くだけ。
音楽の再生にはAudioSourceクラスのPlayOneShotメソッドを使います。
1 2 3 4 5 6 7 8 |
void Update () { if (Input.GetMouseButtonDown (0)) { audioSource.PlayOneShot (pianoSound); } } |
ここまでかければコードは終わり。
このスクリプトをpianoオブジェクトにアタッチします。

あとは、最後に、一番最初に指定したpublicな変数pianoSoundにInspector上から音楽ファイルを設定します。

ただ、これではゲームを再生した瞬間から音楽が再生されてしまいませんか??
その原因はAudioSourceコンポーネントの「Play On Awake」にチェックが入っているからなので、チェックを優しく外してやりましょう。
これでクリックすると、ピアノからLalalandのテーマ曲が流れてくるはずです。
やりましたね!
「UnityではじめるC# 基礎編」には音楽やサウンドの再生以外にもUnityの基礎テクニックが満載。
ぜひ試してみてくださいね。
それでは!
Lin

おそらく、ブロガー。現在ホテル暮らしで全国フラフラしています。
ネット広告代理店に1年3ヶ月勤め上げ、独立をして丸4年が経ちました。今年でフリーランス 5年目。
質問・ご意見・相談があればLINEで受け付けていますのでお気軽にどうぞ 。
コメントを残す