公式サイトはこちら2016-11-25【Unity】シンプルかつ軽量なオブジェクトプールの実装UnityUnityのInstantiateが遅い。実際、モバイルとかでエフェクトや弾をガンガン出していると目に見えて遅くなっていきます。いうわけで、「使い終わったオブジェクトは貯めておいて(あるいは最初にまとめて生成して)、必要になったら取り出す」という「オブジェクトプール」の方法が良く取られます。実装の方法はいろいろあるようですが、軽く調べたところ今回実装した方法はスマートかつ無駄なオーバーヘッドも少ない感じがしたので、上げておこうかなという次第です。Sleep();}これだけです。こいつをPoolObj.csなどとしてプロジェクトに放り込めばスクリプト単体で動作します。自分で呼んでも他の誰かから呼ばれてもOKです。使うことが多い印象です。確かに一番典型的な例ではこれで構わないでしょうね。ないにせよ遅いことが分かっていますし、後のBulletでの使用例のように、変数初期が必要な場合もあります。オブジェクトごとに最適な休眠状態は違うが、オブジェクト指向に則った実装では、そのオブジェクトの使用者はそれを意識する必要がない。こんな理由で上のような実装になりました。注意点としてはシーンをまたいだ際にClearしないと、nullがプールされた状態のままになるといったところでしょうか。最後にサンプルソースを。アップデートパッチ月別アーカイブリンクはてなブログブログをはじめる週刊はてなブログはてなブログProはてなブログをはじめよう!marudiceさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。