自作サウンドマネージャー要件(したいこと)
想定する使い方
用途は主に、どこからでもサウンドを再生する。
最適化は眼中にない。とりあえずあるていど便利に扱えることを目的とする。
このスクリプトが入ったオブジェクトをDontDestoryOnloadの子オブジェクトとして設定する。
外部から呼ばれる際はpublic-staticな参照を通じて行う。
実装内容
サウンド再生Prefab
文字通り、メインの機能を持つプレハブ
以下のコンポーネントを持っている
Taki.SoundManager
SoundManager(サウンド再生スクリプト)
サウンド再生を司る
Dictionary<SoundEnum,AudioClip>の形式で、呼び出す。
以下のScriptableObjectを持っており、それを参照する
SoundList
SoundList(サウンドリスト)
サウンドはここに参照を入れる。
パーシャルなクラスで動的にswitch分も作成される
SoundEnum(サウンドの一覧)
後述のスクリプトから動的に生成される。
ファイル名がその要素となる。
SoundCreator(動的サウンド生成)
UnityEditor限定で、入れた音声のファイル名に対応するEnumと、再生する部分のswitch文を動的に作成する。
動的生成部分はパーシャルを用いる
Enumはパーシャルもなく普通に動的生成する。
それぞれUnityエディタのボタンから実行可能で、実行するとSoundListに登録されたサウンドを参照し、以下を生成
SoundEnumの定義
SoundSwitcher