見出し画像

6-1ボールが跳ね返るときに効果音を鳴らす【Unityゲーム開発の基礎】作って学ぶブロック崩し

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

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

今回はボールが跳ね返った時に効果音を鳴らすようにします。


音源素材を入手する

自身で音源まで作るのは大変なので、無料で利用できる音源を使わせてもらうことにします。
著作権フリーで利用できる音源を配布しているサイトが結構あるので、利用規約などを確認して使えそうなファイルをダウンロードします。

入手したファイルはプロジェクトのassetsフォルダの下に「sounds」フォルダを作成してそこにコピーしておきます。


ボールに AudioSource コンポーネントを追加

音を鳴らすには オーディオを再生する AudioSource クラスと、
オーディオデータを管理する AudioClip クラスを使います。
AudioClip に音源データを読み込み、AudioSource から指定の AudioClip を再生するという流れになります。

まずはボールオブジェクトに AudioSource コンポーネントを追加します。

Audio Source

AudioSource コンポーネントに音源とするAudioClipを設定する項目がありますが、指定するとすぐ音が鳴り始めてしまうのでココではまだ指定しません。


ボール用のスクリプトに音源を紐づけ

AudioClipはポール用のスクリプトに持たせます。

public class BallBehaviour : MonoBehaviour
{
    public AudioClip audioClip;                   //←ココを追加
       :
       :
}

BallBehaviour にメンバ変数を作成したら、Inspectorから音源ファイルを紐づけます。

Audio Clip


ボール用のスクリプトで音を鳴らす

ボール用のスクリプト BallBehaviour を以下のように変更しました。

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


    public void Startup(MainManagerBehaviour manager)
    {
        this.mainManager = manager;
        this.rigidBody2D = this.GetComponent<Rigidbody2D>();
        this.audioSource = this.GetComponent<AudioSource>();   // ←ココを追加   
           :
           :
    }

       :
       :

    void OnCollisionEnter2D(Collision2D collision)
    {
           :
           :
        this.audioSource.PlayOneShot(audioClip);               // ←ココを追加
    }
}

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

そして、ボールが何かに衝突した時に呼び出される OnCollisionEnter2Dメソッドで音を鳴らします。効果音のような短い音を鳴らす場合は AudioSourceのPlayOneShotを使うのが手軽でよさそうです。


つづく


次回:6-2敵が壊れる時効果音を鳴らす (予定)


いいなと思ったら応援しよう!

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