SEの音源と音量を一括管理する簡易版AudioManager [Unity]

SEの音源(AudioClip)と音量(Volume)を一括管理する簡易版AudioManagerのアウトプットです.
せっかくSingletonをIOしたので,Unityでアウトプットしました. xrdnk.hateblo.jp

Soundクラス

using UnityEngine;

[System.Serializable]
public class Sound
{
    [Tooltip("サウンドの名前")]
    public string name;
    // AudioSourceに必要な情報
    [Tooltip("サウンドの音源")]
    public AudioClip clip;
    [Tooltip("サウンドボリューム, 0.0から1.0まで")]
    public float volume;
    // AudioSource.Inspectorに表示しない
    [HideInInspector]
    public AudioSource audioSource;
}

AudioManager.cs

using UnityEngine;
using System;

public class AudioManager : MonoBehaviour
{
    // Soundクラス配列
    [SerializeField]
    private Sound[] sounds;
    // シングルトン化
    public static AudioManager instance;

    private void Awake()
    {
        // AudioManagerインスタンスが存在しなければ生成
        // 存在すればDestroy,return
        if (instance == null)
        {
            instance = this;
        }
        else
        {
            Destroy(gameObject);
            return;
        }

        DontDestroyOnLoad(gameObject);

        // Soundクラスに入れたデータをAudioSourceに当てはめる
        foreach (Sound s in sounds)
        {
            s.audioSource = gameObject.AddComponent<AudioSource>();
            s.audioSource.clip = s.clip;
            s.audioSource.volume = s.volume;
        }
    }

    public void Play(string name)
    {
        // ラムダ式 第二引数はPredicate
        // Soundクラスの配列の中の名前に,
        // 引数nameに等しいものがあるかどうか確認
        Sound s = Array.Find(sounds, sound => sound.name == name);
        // なければreturn
        if (s == null)
        {
            print("Sound" + name + "was not found");
            return;
        }
        // あればPlay()
        s.audioSource.Play();
    }
}

空オブジェクト(AudioManagerにRenameする)にAudioManager.csを貼り付けて終わり.
追加したいSE分だけSizeを増やします.例として以下の画像みたいな感じになります. f:id:xrdnk:20200105021718p:plain

SEを追加したいメソッドに以下のコード追加するだけで完了.

AudioManager.instance("[name]");

参考記事

以下にもっとつよつよなAudioManagerがあります.
特にkan_kikuchi様のAudioManagerはすごい….是非個人開発に使わせて頂きます.
今までSEを追加するたびにスクリプトに毎回AudioClip入れていたのを卒業です. qiita.com kan-kikuchi.hatenablog.com