見出し画像

6-3ゲームスタート・ゲームオーバーの時にも効果音を鳴らす【Unityゲーム開発の基礎】作って学ぶブロック崩し

ブロック崩しを作りながらUnityを学んでいこう!
フェーズ1で「ブロック崩しの骨格」を作り
フェーズ2で「見た目をかっこよく」して
フェーズ3で「タイトル画面やゲームオーバーなどの画面」を作って
フェーズ4で「アニメーション」させて
フェーズ5で「ステージを増やす」ことができました。

フェーズ6の目標は「音を鳴らす」です。

今回はゲームを開始した時やゲームオーバーになった時、クリアした時などの場面切替の時にも音を鳴らすようにしてみます。


AudioSourceコンポーネントを追加

まずは AudioSourceコンポーネントです。
場面切替用の AudioSource は MainManagerオブジェクトへ追加することにします。

MainManagerオブジェクトの Inspector からAudioSourceコンポーネントを追加します。

Audio Source


音源を紐づけ

MainManagerBehaviourにAudioClipをメンバ変数として追加します。

public class MainManagerBehaviour : MonoBehaviour
{
    public AudioClip gamePlayES;                   //←ココを追加
    public AudioClip gameOverES;                   //←ココを追加
    public AudioClip gameClearES;                  //←ココを追加
       :
       :
}

Inspectorからこの変数にそれぞれ音源ファイルを紐づけます。

Audio Clip


スクリプトで音を鳴らす

スクリプト MainManagerBehaviour を以下のように変更しました。

public class MainManagerBehaviour : MonoBehaviour
{
           :
           :
    private AudioSource audioSource;                               // ←ココを追加


    void Start()
    {
           :
           :
        audioSource = GetComponent<AudioSource>();                 // ←ココを追加   
    }

    public void OnNewGameButtonClicked()
    {
           :
           :
        audioSource.PlayOneShot(gamePlayES);                       // ←ココを追加
    }

    public void OnNextStageButtonClicked()
    {
           :
           :
        audioSource.PlayOneShot(gamePlayES);                       // ←ココを追加
    }

    public void OnContinueButtonClicked()
    {
           :
           :
        audioSource.PlayOneShot(gamePlayES);                       // ←ココを追加
    }

    public void OnReturnToTitleButtonClicked()
    {
           :
           :
        audioSource.PlayOneShot(gamePlayES);                       // ←ココを追加
    }

    public void OnEnemyUnitDead()
    {
           :
           :
        audioSource.PlayOneShot(gameClearES);                       // ←ココを追加
    }

    public void OnBallLost()
    {
           :
           :
        audioSource.PlayOneShot(gameOverES);                       // ←ココを追加
    }
}

ゲーム開始時に呼び出される Startメソッドで、MainManagerオブジェクトに紐づけられた AudioSource コンポーネントを取得しておきます。

そして、それぞれ場面切替で呼び出すメソッドでAudioSourceのPlayOneShotを呼び出して音を鳴らします。


つづく


次回:6-4BGMを鳴らす


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?