第08回 音をつける

hiroki-o edited this page Oct 15, 2015 · 2 revisions
Clone this wiki locally

前章で既にゲームとしての必要な実装はほぼ終わっています。 この章では、プレイヤがー弾を撃った時の音や爆発した時の音、さらにゲームのBGMを実装しましょう。

8.1 BGMを付ける

3D Sound

ゲームで発せられる音はMain CameraにアタッチされているAudio Listenerを通して、スピーカーなどから音が出ます。 3D Soundであれば、音が発した場所とAudio Listenerの距離が考慮され、遠ければ遠いほど音が小さくなります。 3D Soundでなければ2D Soundとなり、音が発した場所とAudio Listenerの距離は考慮されず、一定の音量となります。

bgmファイルをシーンビューへドラッグ&ドロップします。

作成されたbgmゲームオブジェクトを選択し、インスペクターにあるLoopにチェックを入れます。

これからBGMを鳴らすので音量に注意してください。 ゲームを再生してみてください。ゲーム開始と同時にBGMが再生されるはずです。

8.2 プレイヤーにショット音をつける

次はプレイヤーが弾を撃った時のショット音を実装します。 PlayerゲームオブジェクトにAudio Sourceコンポーネントをアタッチしてください。 アタッチしたら必要なパラメータを設定していきます。 Audio ClipにはSounds/SEにあるshootを使用します。ドラッグ&ドロップして格納してください。 Play On Awakeのチェックを外し、ゲームオブジェクト作成時に音を鳴らさないようにします。 BGMと音の大きさが同じで少し聞きづらいのでVolumeを0.3にします。 最後にPitchを0.64にしましょう。

ショット音をスクリプトから再生します。

Player.cs

using UnityEngine;
using System.Collections;

public class Player : MonoBehaviour
{
	// Spaceshipコンポーネント
	Spaceship spaceship;
	
	IEnumerator Start ()
	{
		// Spaceshipコンポーネントを取得
		spaceship = GetComponent<Spaceship> ();
		
		while (true) {
			
			// 弾をプレイヤーと同じ位置/角度で作成
			spaceship.Shot (transform);
			
			// ショット音を鳴らす
			GetComponent<AudioSource>().Play();
			
			// shotDelay秒待つ
			yield return new WaitForSeconds (spaceship.shotDelay);
		}
	}
	
	void Update ()
	{
		// 右・左
		float x = Input.GetAxisRaw ("Horizontal");
		
		// 上・下
		float y = Input.GetAxisRaw ("Vertical");
		
		// 移動する向きを求める
		Vector2 direction = new Vector2 (x, y).normalized;
		
		// 移動
		spaceship.Move (direction);
	}
	
	// ぶつかった瞬間に呼び出される
	void OnTriggerEnter2D (Collider2D c)
	{
		// レイヤー名を取得
		string layerName = LayerMask.LayerToName(c.gameObject.layer);
		
		// レイヤー名がBullet (Enemy)の時は弾を削除
		if( layerName == "Bullet (Enemy)")
		{
			// 弾の削除
			Destroy(c.gameObject);
		}
		
		// レイヤー名がBullet (Enemy)またはEnemyの場合は爆発
		if( layerName == "Bullet (Enemy)" || layerName == "Enemy")
		{
			// 爆発する
			spaceship.Explosion();
			
			// プレイヤーを削除
			Destroy (gameObject);
		}
	}
}

ゲームを再生してみてください。弾を撃つごとにショット音がなっているはずです。

8.3 爆発音を付ける

最後に爆発した時の爆発音を実装します。 Sounds/SEにあるboomをExplosionのプレハブにアタッチしてください。

これで爆発した時に爆発音がなるはずです。

第08回終わり

今回はここで終了です。つまずいてしまった方はプロジェクトファイルをダウンロードして新たな気持ちで次の回へ進みましょう。

今回のプロジェクトファイルをダウンロード