サウンドマネージャークラスを作成する際のクラス設計、サポート機能をまとめます。
プラットフォームごとに異なるADX2 LEの初期化処理を吸収します。
PC、Android、iOSの初期化処理をサポートします。
//PC, Android, iOSで呼び出し処理を共通にする
// * シーンプログラマに初期化処理を意識させない
// ゲームの起動時に1度インスタンス化され、ゲーム内ではどこからでもアクセスができる
// * Initialize()によるシングルトン化
// * どこからでもアクセスが可能
SoundManager.Initialize();
シーンプログラマーが任意のタイミングでBGMの再生、停止ができます。
想定される利用パターン
- シーンからシーンへの遷移
- 同じBGMの再生を継続して行う(再生中のBGMを途切れさせない)
- 違うBGMの再生に切り替える(元のBGMをフェードアウトし、次のBGMをフェードインさせる)
//BGMを再生した場合、明示的にStopBGM()が呼ばれるまで再生は継続する(ループ再生する)
//オプション引数によってフェードアウト、フェードインのディレイ時間を操作できる
//BGM再生枠は1つとし、BGM再生中に別のBGM再生が呼ばれた場合、フェードアウト=>フェードインを自動でやる
SoundManager.PlayBGM("サウンド名", 500);
SoundManager.StopBGM("サウンド名", 500);
シーンプログラマーが任意のタイミングでSEの再生、停止ができます。
//指定されたサウンドを1回再生し、再生が終わると停止します。
//再生途中に明示的にStopSE()を呼び出して停止させる事もできます。
//SE再生枠は上限はありません。SE再生中に被せて別のSEを再生できます。
//TODO: 同じSEを同時に再生した時、現状のStopSE()だとプレイヤーを特定できない
SoundManager.PlaySE("サウンド名");
SoundManager.StopSE("サウンド名");
- プレイヤー設定がたくさんあるけど、使わない?
- MusicEngineでアクセスできる音源の制御(BGM、SE、ボイスはMusicEngineは必要ない)