遠くに見えている地雷の香り

メモリ解放、やってますか。(やってない)

unityでassetを動的に読み込む仕組みを調べる中でResources.UnloadUnusedAssets()というものを見つけた。
どうもメモリの開放をするような役割っぽいのだが、そういえば深く考えずに実体化させたり読み込んだりデータ作ったりしてるけど大丈夫なのかなと不安になった。
ぶっちゃけ、今のところは扱う量も仕組みも大した事ないからPCとかUnityがうまくやってくれてるけど、いつかアセット自体が豪華になったりした時に立ち向かわなきゃいけない壁だと思う。

ResourcesのStatic関数はそんなに数が多いほうじゃないけど、需要を反映してか公式リファレンスでも和訳されてないようなのがいくつかあり、その中にメモリの開放があるのがちょっと意外というか、勝手に「そういう面倒なこと」類はエンジン側が制御してくれていると思いこんでいた。わざわざメソッドが用意されているってことは、少なくともする必要がある場面があるってことでしょうし、使わなくなったリソースを開放するって絶対大事じゃん。

こんな記事もあるくらいなので、ふつうによく使うべき関数なのではないかという疑念が湧いてきた。なんなら設計段階から置くポイントを考慮できそうだし、するべきな気もする。
ただ、肌感としてどこでなんの参照が生きているか捉えきれていないし、「とにかく動かす(動く形にする)」ことを自称プログラミングとかゲーム開発と呼んでしまっている身としては、今触ると参照全部外れたとかなって泣きそうで怖い。

当座の間はいいとして、とりあえず頭に入れておくことにする。踏み抜いたら着手します()。

スチル多めのゲーム作ったりしたときにクラッシュ報告が多かったりしたらまず絶対これなんだろうなあ…みたいな。怖いね~~。

この記事が気に入ったらサポートをしてみませんか?