AndroidプラットフォームでUnityオプションを確認する際にPlayer Settings > Publishing Settings > Split Application Binary, APK Expansion Filesを使ってプロジェクトアセットをバンドルします。これによって拡張子.obbのZipファイルが作成され、ここにSoundBankを含むStreamingAssetsフォルダが入ります。デフォルトのAndroid SoundBankロードサポート機能は、SoundBankがAPKファイルまたはOBBファイルにあるものとしています。
自分で外部でOBBファイルを構築する場合は、AkSoundEngine.SetBasePathに渡すインナーパスがOBB内のものと同一である必要があるので、注意してください。圧縮されず暗号化されていないOBBファイルでなければ、デフォルトのI/Oシステムで稼働しません。そうでない場合は、OBBをpersistent データパスで解凍する必要があります。オンザフライで解凍するには、解凍のCPU負荷が高すぎます。
または、バンクをメモリ内にロードすることもできます。AkMemBankLoader.csに例があります。このスクリプトは、シーンの開始時点で指定されたSoundBankをロードして、シーンが破壊されるとアンロードするためのものです。この例を利用するには、以下の変更が必要です:
- SoundBankをロードする必要のある全てのゲームオブジェクトに対して、このスクリプトをコンポーネントとして追加する。.
- InspectorでSoundBankのファイル名をスクリプトコンポーネントのBank Nameフィールドに入力する。
- SoundBankがローカライズされている場合は、Inspectorで
Is
Localized
Bank
オプションを選択する。AkInitializer.cs
で定義したグローバルランゲージが使用されます。
- 他のSoundBankロード機能を全て無効にして、シーンを保存する。
2種類の方法、 AkMemBankLoader.LoadNonLocalizedBank()
と AkMemBankLoader。
LoadLocalizedBank()
は、非ローカライズとローカライズ済みSoundBank用に直接コールすることもできます。
- メモリ内メソッドでは、ストリーミングSoundBankをロードできません。より優れているものの難しい手段として、ローレベルIOフックを実装するとオンザフライでZipファイルを解凍できるので、ストリーミングと非ストリーミングの両方のSoundBankに対応できます。ただしこの例は、現時点では提供しませ。ユーザは自由にこのようなフックを実装したりIntegrationを再ビルドしたりできます。詳しくは streamingmanager_lowlevel セクションを参照してください。
- 単純にするためにスクリプト例ではスクリプトコンポーネント1つに対して1つのSoundBankしかロードしませんが、簡単に拡張してSoundBankのリストを一括ロードするコレクションバージョンも設定できます。
- このスクリプト例では最も単純なメモリ内SoundBankロードAPIだけをラップしていますが、コールバックに基づくバージョンもあり、必要に応じて簡単に追加できます。APIバインディングは既にIntegrationで提供中です。
Wwise Unity Integrationに対してThu Feb 1 09:40:26 2018に生成されました。
1.6.3