音をつける

確認済のバージョン: 5.5

-

難易度: 初級

前章で既にゲームとしての必要な実装はほぼ終わっています。 この章では、プレイヤがー弾を撃った時の音や爆発した時の音、さらにゲームの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のプレハブにアタッチしてください。

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