【Unity】子オブジェクトの数を数えて処理を使い分ける方法があった!!

f:id:clrmemory:20171116204728p:plain

こんにちはクリアメモリです!

今回は、Unityで子オブジェクトの数を判定する方法を紹介します。

この方法を使うことで子オブジェクトを数えることができるというのはもちろんのこと、オブジェクトが0個になった時に実行するという使い方もできます。

簡単なコードでできるので、ぜひやってみてください。

 

 

はじめに

 

このコードの実行例は私の場合、「子オブジェクトが0個になったら親オブジェクトを削除する」という使い方をしました。

この方法をとった理由は、子オブジェクトがなくなった邪魔なオブジェクトを削除するためです。

 

さて、本題のコードですが、このように書いてみました。

 

子オブジェクトの数を数える

 

以下のようなコードを書いてみましょう。

 

using UnityEngine;
using System.Collections;

public class Destroy : MonoBehaviour {

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        int ObjCount = this.transform.childCount;

        if (ObjCount == 0) {
            Destroy (this.gameObject);
        }
    }
}
このようにするだけで、子オブジェクトの数が0個になった親オブジェクトを削除することができます。
 

 

 

具体的には、

 

int ObjCount = this.transform.childCount;

-> this オブジェクト内にある子オブジェクトの数を計る。

 

if(ObjCount == 0){

-> 子オブジェクトの数が0だった場合。  

 

Destroy(this.gameObject);

-> 親オブジェクトの削除。

 

というようになっています。

 

もし、今回とは別の処理をする時には、Destroy(this.gameObject);の部分を任意の処理に変更しましょう。 また、ObjCount == 0 を1や2に変更することで子オブジェクトの数が2個だったら、というように指定できます。  

 

処理に合わせて使い分けてみてください。

 

まとめ

このスクリプトを使うことによって、

子オブジェクトが削除されているのに空の親オブジェクトだけが残ってしまう 

という事を防ぐ事ができます。 他にも、子オブジェクトが無くなった時だけ動作する処理などを追加する時にも使えるのでぜひ試してみてはいかがでしょうか。

 

www.clrmemory.com

 

ではまた。

新着記事