Unityで、指定のGameObjectの子供の数分foreachで、数えて。表示/非表示
ハート等のライフポイントの数だけGameObjectを出す例。
上記のように、Hierarchyに配置したGameObjectの子の数を数えて、表示、非表示など制御。
GameObject arrObj = GameObject.transform.Find ("GameObject/GameObjectHoge").gameObject;
int num = 0;
foreach(Transform childObj in arrObj.transform){
// ライフポイントの数だけ、GameObjectをアクティブにして表示、指定ポイントより低かったら非アクティブ
if (lifeCount > num) {
childObj.gameObject.SetActive (true);
} else {
childObj.gameObject.SetActive (false);
}
num += 1;
}
この例だと、ライフポイントの数だけ、GameObjectをアクティブにして表示、指定ポイントより低かったら非アクティブして、
ライフポイントの表示制御をしています。
間違えやすいポイントとして、 foreachの型指定が、GameObject型ではなく、Transform型にしないとエラーになります。