ゲームを終了できる状態になり、もはやオーディオが必要なくなったら、先に初期化したすべてのモジュールを終了させます。サンプルプログラムは、すべての終了コードを再編成するために以下の関数を使用しています:
void TermSoundEngine()
{
... Termination will be done here ...
}
終了は、初期化と反対の順序で行われます。
通信モジュールが初期化されている場合、これの終了から開始しましょう:
void TermSoundEngine() { #ifndef AK_OPTIMIZED // // Terminate Communication Services // AK::Comm::Term(); #endif // AK_OPTIMIZED (...) }
|
Caution: 他のモジュールの 前に、通信モジュールを終了させることが重要です。 |
ミュージックエンジンが初期化されている場合は、サウンドエンジンの前にこれを終了させる必要があります。
void TermSoundEngine() { (...) // // Terminate the music engine // AK::MusicEngine::Term(); (...) }
サウンドエンジン自体を終了させます:
void TermSoundEngine() { (...) // // Terminate the sound engine // AK::SoundEngine::Term(); (...) }
次に、ストリーミングマネージャと低レベルI/Oを終了させます:
void TermSoundEngine() { (...) // Terminate the streaming device and streaming manager // CAkFilePackageLowLevelIOBlocking::Term() destroys its associated streaming device // that lives in the Stream Manager, and unregisters itself as the File Location Resolver. g_lowLevelIO.Term(); if ( AK::IAkStreamMgr::Get() ) AK::IAkStreamMgr::Get()->Destroy(); (...) }
メモリマネージャのクライアントがすべて終了されたので、最後にメモリマネージャ自体を終了させます:
void TermSoundEngine() { (...) // Terminate the Memory Manager AK::MemoryMgr::Term(); }
これで、サウンドエンジンに関連する全てのモジュールがクリーンアップされ、プログラムを終了する準備が整いました。続いて、Wwise 要素のゲームへの統合 をご覧になることをお勧めします。