0シューティングゲームの弾のように大量に同じオブジェクトを使う必要がある場合、「Instantiateで生成してDestroyで破棄」という処理を都度、行なっていると処理がとても重くなる場合があります。ここでは「オブジェクトプーリング」と呼ばれる方法を使ってオブジェクトを使い回し、処理を軽くする方法を説明しています。unity」とかで検索すると大量に出てくるのですが、スクリプトがペタッと貼ってあるだけの記事が多くて実際に使ってみる時に少し迷ったので、実装手順も含めた記事にしてまとめておきます。この記事は以下の記事で紹介されているスクリプトを参考にさせていただいています。使い終わったらまた画面外に戻してRigidbodyのsimulatedをfalseにしておく事前準備プレイヤーと弾の表示まず始めに、プレイヤーと弾を用意します。素材がない場合は以下の画像を使用してください。プレイヤー画像は以下のサイトのものを使用させていただいています。ありがとうございます。MillionthVector素材が用意できたら、シーンビューにプレイヤーと弾のsprite画像をドラッグ&ドロップして表示させておいてください。位置は適当で大丈夫です。弾を移動させる処理を追加します。先ほどシーンビューに表示させた弾を選択して、「Rigidbody2D」と「CapsuleCollider2D」コンポーネントを追加してください。次に以下のスクリプトを作成し、弾のコンポーネントに追加してください。ここでは「BurretController」という名前にしています。画面の一番上のy座標。+1しているのは余裕を持っているだけです。画面の一番上のy座標。+1しているのは余裕を持っているだけです。false;}}}ゲームを再生してみてください。弾が画面外で止まり、「Rigidbody2D」の「simulated」のチェックが外れていればOKです。ここまで出来ていれば弾の準備は完了です。弾をprefab化してシーンビューからは削除しておいてください。次にプレイヤーから弾を発射する処理を追加します。以下のスクリプトを作成し、プレイヤーのコンポーネントに追加してください。ここでは「PlayerController」という名前にしています。