【unity】ウマ娘はunityで作られた! メモリリークとunityの関係性について

【unity】ウマ娘はunityで作られた! メモリリークとunityの関係性について

 最近、よく聞くウマ娘というスマホゲーム。実はunityで開発されているんです。今回はウマ娘をプレイしていてスマホの動作が重たくなったりスマホが熱くなってしまうメモリリークがunityの持病と言われている話などを紹介していきます。この機会にunityについて詳しくなってしまいましょう!

unityにおけるメモリリークとは

 導入でも書きましたが、この記事を読んでいる方はウマ娘についてある程度の知識があると思います。少なくとも馬が美少女になって走る育成ゲーム程度の知識があれば十分ですのでウマ娘の説明は省きますね。

 さっそく本題です。メモリリークとは簡単に言えば部屋を掃除しないようなものです。

 メモリという部屋があり、その部屋の中で必要な処理を行います。理想のプログラムは部屋が常に奇麗で必要な処理しかない状態のことですが、開発者の意図しないまま残ってしまった不要な処理が積み重なることでメモリを圧迫してしまうことをメモリリークといいます。

 ウマ娘に限らず、十分に高いスペックのスマホやPCゲームで遊んでいるのに動作が重たくなったりしますよね。それは、無駄な処理が多い証拠です。

 難しいなと感じた人はこちらが参考になるので確認してみてくださいね。

 では、どうすれば無駄な処理を省けるのでしょうか?

staticは最小限にする

 unityでゲーム開発をした経験がある人なら誰もが便利だと感じるstatic変数。他のスクリプトでも動作する関数が作れたりするのでついつい頻繫に使いがちですよね。

 このstatic変数はゲームが動作している間常に参照し続けます。ですので、staticにしなくてもよい関数をstaticにしたり、全ての変数をstaticにしているとメモリリークが発生していまうわけです。

 不要なstatic関数は使わないように気をつけてください。