はじめに
ゲーム中に常時存在しているわけではないが、プレイ中に生成したいアセット(画像、モデル等)ってありますよね。
今まで、Scene上のゲームオブジェクトにアタッチして生成させていたのですが、
これはよくないらしいです。
リソース管理
そもそもリソース管理とはなんなのか。
スクエニさんが公開してくれている、「ゲームエンジンで大規模開発する場合でのリソース管理の落とし穴」の記事が、わかりやすく参考になりました。
第2回 オンラインゲーム・テクニカルオープンカンファレンス | SQUARE ENIX
オンラインゲーム・テクニカルオープンカンファレンス 開催!!
こちらの記事の「失敗例」であげられているのですが、要はメモリの観点から設計を考えましょうということみたいです。
具体的な手法
検索しているとかなりいろいろと記事が出てきましたが、この分野についてはまったく知識がなく、難解でした。。。
そんななか、めちゃくちゃ参考になるスライドを見つけました!
【Unity】リソースを適切に管理しよう | ドクセル
ドクセルはスライドやPDFをかんたんに共有できるサイトです
Scene上オブジェクトの所持する参照についても、メモリが確保されているようで、冒頭紹介した私の手法はその点で問題になるようです。
代替案として、Resourcesフォルダを活用する方法があるようですが、検索すると「Unity公式非推奨」のフレーズが連発されており、十分な解決法とは言えないようです(あまりわかっていない)。
現状推奨されているのはAddressablesという機能のようです。
比較的手軽に扱えるようなので、是非とも勉強してみたいです。いずれ記事にしたいと思います。
おわりに
ゲーム開発をしていると、何かを実装する手法というものは、作るゲームの規模と実装コストとのトレードオフの関係だなあとよく思います。
今までに作ったゲームは規模が小さく、リソース管理についてあれこれ頭を悩ませても大きな恩恵はないかもしれませんが、今後のためにも勉強していこうと思います。