i-school - 物が当たった時に音を再生する機能を追加する
ボールが壁やブロックを破壊した際に、SE(効果音)を鳴らすように設定を変更します。

1.鳴らしたいSEを検索エンジンを利用して無料素材を探して、PCに保存します。


 Googleの検索で「SE ゲーム 無料」と検索すると、色々な無料サイトからダウンロードが可能です。
 音源ファイルはmp3かwaveにて保存してください。

2.音源ファイルをUnityにインポート(追加)します。


 インポートしたい音源ファイルを選んでUnityのAssetsフォルダ内にドラッグ&ドロップします。
 これでインポートされます。

3.インポートされた音源ファイルを1つのフォルダにまとめます。


 Assetesフォルダ内でマウスの右クリックをしてcreate -> forderを選択し、新規フォルダを作成します。
 名前を「SE」にしてください。Unity公式の場合には「Sound」フォルダが作成されていると思います。

4.新しいスクリプト「HitPlaySound」を作成します。


 Assetes -> Script フォルダ内で右クリックをして、create -> C# scriptを選択します。
 ソースコードは下記の通りです。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HitPlaySound : MonoBehaviour {

    public AudioClip sound;

    void OnCollisionEnter(Collision collision) {
        AudioSource.PlayClipAtPoint(sound, transform.position);
    }
}
※ PlayClipAtPoint()は、メソッドです。
このメソッドは、鳴らしたいオーディオクリップと座標を引数に指定すると、指定した場所に新しく一時オブジェクトを生成し、音を鳴らしてくれます。
このメソッドによって一時生成されたオブジェクトは自動的に破棄されます。

5.SE鳴らしたいオブジェクトに先ほど作成したスクリプト「HitPlaySound.cs」をアタッチします。


 壁の場合には、ヒエラルキーで壁を選択します。その状態でHitPlaySoundをドラッグ&ドロップしてアサインさせます。

 インスペクターでスクリプトを確認すると「Sound」という項目があり、外部より音源をアサインするようになっているので
 ここに好きな音源をAssets => Sounds フォルダ内より選択し、ドラッグ&ドロップします。
 これで壁にボールが当たるとSEが再生されます。

6.プレイヤーのラケットや、画面下部の壁(GameOver用)にも同様にスクリプトをアタッチして、音源をアサインします。

7.ブロックはPrefabフォルダ内のBlockオブジェクトを選択して、そちらにスクリプトをアタッチして、音源をアサインします。

8.ゲームを実行して、対象となるオブジェクトにボールが接触したときにSEが再生すれば完了です。