今更ながらそろそろAddressables(AssetBundle)を使う必要が出てくるかなあと思い始めた。
Unityの機能で、言ってしまうとアセット(画像やスクリプト等のリソース)を動的に読み込むための仕組みのひとつ。
Addressables – Unity マニュアル (unity3d.com)
Addressables | Addressables | 1.20.5 (unity3d.com)
元々AssetBundleが使いにくいので敬遠されてたけど、このAddressablesで簡単に使えるようになった、みたい。
自分はゲーム作るときに動的に読み込むときのタイミングの調整が困難かと思ったのとAssetBundleが複雑な仕様だったのも有り、「動的に読み込まなくていいようにゲームを構成」して作るようにしたのでそれほど困ることはない。
CryPic./救哭ノ鳥/WeatherReports.は上記の方法で作ってるのもあり、必須ではない状態。
だが、今後プレイヤー変更や対戦モードみたいなのを用意するときにこういう仕組みがないと「全部のリソースをロードしてゲーム開始」ということになりかねないので、動的に読み込みできる選択肢は確保しておくほうがいいという考え。
敵のセットはステージごとでいいので、あとは動的にリソース読み込むためのローダを作成する形でよさそう。
幸いなことに、データ確保用の変数自体は作成してある(現状はそこに直接各種リソースをアタッチしている)ので、そこにセットする形にすれば割とすぐできるんじゃないかなと思ってる。
あとはリソースの読み込みを非同期に「しない」形を想定している。そうじゃないと表示もうまくいかないし、動きもうまく制御できない。つまりUnityのいいところである「リソース読み込み中でも動く」ことを止めたいというのが根底にある。
この方法は確認しておかないとだめそう。
最悪リソース読み込みができてなければフレーム開始しないくらいの実装でもよさそう。
対応内容は以下を予定。