久しぶりのブログ更新。というのも、UnityのAsset Storeに出しているアセットについてユーザーから問い合わせがあったから。
問い合わせの内容は、シーンを保存したときに

というメッセージが出るのを止める方法はあるか? というもの。

いやあ、このメッセージが出るのは知ってたんだけど、いろいろ頑張っても消えなかったので無視してたんだよね〜。
でも問い合わせがあったからには、もうちょっと努力してみてまともな回答をしなくては、と思ってやってみたらあっさり解決してしまったので、その方法について書きます。

方法は実にシンプルでリークしていると言われているオブジェクトのhideFlagsHideFlags.HideAndDontSaveをつけるだけ。
僕の場合はMeshをダブルバッファして使っていたので、こんな感じになる。

ただし注意が必要なのはHideFlags.HideAndDontSaveをつけたオブジェクトはシーンが破棄されても自動で破棄されないので、自分で破棄するようにする。Awakeでオブジェクトを作成しているならOnDestroy, OnEnableで作成しているならOnDisableで破棄するのが良いでしょう。

僕の場合は元々破棄するコードは書いてあったので、破棄するコードを書いたからと言って上のメッセージが出なくなるわけではなく、hideFlagsがミソ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Anti Spam Code *