さけのさかなのブログ

同人ゲーム開発やってます。Unity使ったりする。

【Unity】音まわりパッケージ

ナニコレ

 そろそろ音まわりの処理が共通化できそうだなーということでやってみる。

 とはいえ音に関してはこだわったことをしたことがないので、機能は必要最低限という感じ。FPSなんか作るともう少し演出的にやるべきことができるんだろうけど…。

リポジトリ

github.com

機能

  • BGMのフェードアウトつき遷移
  • BGMアセットの読み込み先切り替え(アセットバンドル or 内部アセット)
    • ただし、アセットバンドル版だと起動時に全部読み込んでメモリに乗せるというゴリ押しの実装になっている。
      • というのもロード処理に関してはハードの影響をモロに受けるので、ベストプラクティスな書き方がないように見える。なのでとりあえずはロード時間が問題にならない方式を用意しておいた。
      • ロード処理はある程度アプリ側で書けるようにしてある。IMusicStoreを実装すればいい。
  • 効果音同時再生の抑制
    • 同じ音が大量に同じフレームに鳴って潰れる、みたいなのを回避する。
  • ちょっとした工夫として、使い終わった音声ファイルは(設定されていれば)AudioClip.UnloadAudioDataを呼んで使用メモリを減らすようにしている。

TODO

 これまで作ったパッケージの機能を網羅するサンプルプロジェクトがあればいいかなあ。