オーディオクリップに入れる音楽ファイルを、スクリプトから切り替えられる仕組みを作ってみましょう。
今回の例ではResources.Loadを使い、ファイルの場所を指定して音楽データを変えていきます。
数字キー1~3を押すと、3種類のサウンドを鳴らし分けることができます。
関連記事:
Resources.Loadを使ったファイル指定
2つの音を切り替えて鳴らす
オーディオごとにボリュームを変える
ボタンで複数のサウンドを再生
ボタンでオブジェクトを切り替える(ボタン2個)
1個のボタンでオブジェクトを切り替える
サウンド再生のPlayとPlayOneShotの違い
複数の音楽ファイルを鳴らし分ける
Assetsの中に、Resourcesフォルダを作成しましょう。
今回は、Resourcesフォルダの中に、さらにSoundフォルダを作成しました。
この中に、mp3ファイルを3つ入れました。
空のオブジェクトを作成します。
GameObject(空のオブジェクト)にオーディオソースを追加し、ゲーム開始時に再生のチェックを外します。
SoundChange.csを作成し、GameObject(空のオブジェクト)に追加します。
SoundChange.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SoundChange : MonoBehaviour { private AudioSource audio; private AudioClip Sound; private string songName; void Start() { audio = GetComponent<AudioSource>(); } void Update() { if(Input.GetKeyDown(KeyCode.Alpha1)) { songName = "SoundA"; Sound = (AudioClip)Resources.Load("Sound/" + songName); audio.PlayOneShot(Sound); } if(Input.GetKeyDown(KeyCode.Alpha2)) { songName = "SoundB"; Sound = (AudioClip)Resources.Load("Sound/" + songName); audio.PlayOneShot(Sound); } if(Input.GetKeyDown(KeyCode.Alpha3)) { songName = "SoundC"; Sound = (AudioClip)Resources.Load("Sound/" + songName); audio.PlayOneShot(Sound); } } } |
Resources.Loadを使えば、Resourcesフォルダにアクセスして、目的のファイルを取得することができます。
ゲームプレイしてみましょう。
数字キー1~3を押すと、3種類のサウンドが切り替わって再生されます。
関連記事:
Resources.Loadを使ったファイル指定
2つの音を切り替えて鳴らす
オーディオごとにボリュームを変える
ボタンで複数のサウンドを再生
ボタンでオブジェクトを切り替える(ボタン2個)
1個のボタンでオブジェクトを切り替える
サウンド再生のPlayとPlayOneShotの違い