質問: 配列の中の一つを消す方法を知りたいです。 例えば public GameObject[] gameObject; として、インスペクターでA,B,Cのオブジェクトをつけ、スクリプト内でBだけを消すにはどうしたら良いのでしょうか。 一番簡単で定番の方法を教えてください。
回答: Bの取得 配列の特定の要素を検索する場合は、LINQを使うと便利です。 A, B, CがGameObjectの名前を指しているのなら、 ``` var b = gameObject.FristOrDefault(g => g.name == "B"); ``` で取得できます。 Bを消す 消すというのが具体的になにを指しているのか分かりませんが、配列から削除する場合は ``` gameObject.Remove(b); ``` GameObjectごと消す場合は、 ``` Destroy(b); gameObject.Remove(b); ``` です。 配列から消すだけの場合 Bを配列から消すだけでいい場合は、Bを除外した新しい配列を作り直すのが手っ取り早いです。 LINQのWhereを使ってフィルタするといいです。 ``` gameObject = gameObject.Where(g => g.name != "B").ToArray(); ``` なお、LINQはそこそこ重いのでUpdateで毎フレーム実行するのは控えましょう。