⑤ゲームの途中でBGMを切り替える方法

*敵ボスが登場した時などにBGMを切り替える方法

今回は「敵ボスが登場するステージ(場所)に触れたらBGMが切り替わる」というものを実現してみます。

1)スクリプトの作成

「BgmChange」という名前の「C#スクリプト」を1つ作成してください。

・下記のコードを中に書いてみましょう。

using UnityEngine;
using System.Collections;

public class BgmChange : MonoBehaviour {

	// 新しいBGM(背景音)を入れるための箱を作る。
	public AudioClip bgm;

	// 音を再生する機能(コンポーネント)を入れるための箱を作る。
	private AudioSource audiosource;


	void Start(){

		// メインカメラ(Main Camera)に付いてる音を再生する機能を箱の中に入れる。
		audiosource = GameObject.Find("Main Camera").GetComponent<AudioSource>();

	}
		
	void OnCollisionEnter(Collision other){
		if(other.gameObject.CompareTag("Player")){

			// 新しい音(BGM)をセットする。
			audiosource.clip = bgm;

			// セットした音(BGM)を再生する。
			audiosource.Play();		
		}
	}
}

2)Unityの設定

・スクリプトのチェックが完了したら、敵ボスが登場するステージにドラッグ&ドロップでつける。

スクリーンショット 2016-07-28 23.32.02

・新しい音(BGM)をドラッグ&ドロップでセットする。(事前にインポートしておきましょう。)

スクリーンショット 2016-07-28 23.31.46

これで完成です。

ゲームを再生して敵ボスがいるステージに触れてみましょう。

触れた瞬間にBGMが切り替われば成功です。

(ここがポイント)

切り替わらない人は、自分が操作するプレーヤーに「Player」という名前のタグ(Tag)がついているか確認しましょう。

スクリーンショット 2016-07-29 6.25.21