プライバシーポリシー

プライバシーポリシー

公開中のゲームはこちら 【Cuel World】ほのぼのスローライフ! 見下ろし型の2Dサンドボックスゲーム! @ブログについて このブログでは、 *  Google AdSense を利用しています   - 広告配信事業者は、ユーザーの興味に応じた広告を表示するためにCookie(クッキー)を使用することがあります。   - Cookie(クッキー)を無効にする設定およびGoogleアドセンスに関する詳細は「 広告 – ポリシーと規約 – Google 」をご覧ください。 *  Google アナリティクスを利用しています   -  このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。     このトラフィックデータは匿名で収集されており、個人を特定するものではありません。     この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。     この規約に関して、詳しくは ここをクリック してください。

Unityで子オブジェクトをすべて取得したり、1つだったり

どうもどうも、
初心者ゲーム制作者の大和です

自分がゲーム制作の過程で
解決できたことを書いていきます


今回は悩みの種だったオブジェクトの取得について
とくに、子オブジェクトの取得です


Unityで子オブジェクトをすべて取得したり、1つだったり


自分の認識では、「foreach」ですべてを!
transform.GetChild(子の番号)で一つを!
な、感じです

実際に使っているのは↓
状況に応じでいいとこどりすればいけるだろっ!

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ChildGet : MonoBehaviour
{
 // ステージを取得する
 [SerializeField] private List<GameObject> stageList = new List<GameObject>();
 void Start()
 {
  // 親オブジェクト
  Transform parentTransform = GameObject.Find("Stage").transform;

  // 0番目の子を取得 --- 直接
  print(parentTransform.GetChild(0).name);

  print("---------------------------------------------------");

  // 子をすべて取得 --- すべてをリストに入れる
  foreach (Transform child in parentTransform)
        {
   stageList.Add(child.gameObject);
         print(child.name);
        }

  print("---------------------------------------------------");

  // 現在のステージの番号
  int nowStageNum = 1;
  // リストの中身 --- ついでに一つのステージを表示してみた
  for (int i = 0; i < stageList.Count; i++)
  {
   // 表示するステージ --- 数字は0から、ステージは1から始まるので注意が必要
   if (i == nowStageNum) stageList[i].SetActive(true);

   print(stageList[i].name);
  }
 }
}


foreachって、
非表示のオブジェクトも取得できるから便利!

…と、勝手に思っていたら、
transform.GetChild(子の番号)」 でも普通に取得できました
 

 「GameObject.Find」だと、
非表示のオブジェクトを取得できないだけで、
上二つは非表示でもOK!


foreachが便利なのは、
まとめてリストに放り込めることですね

一つ一つマウスで放り込むのは面倒なので
(ソースの // 子をすべて取得 --- すべてをリストに入れるの部分)


↑ 何度もマウスをドラッグ&ドロップ…

ステージ数が多くなると面倒で面倒で(;^_^A
ループで解決できてよかったー

このブログの人気の投稿

「Unity」地面との当たり判定は、「ContactFilter2D」でいいんじゃない?

Unityでクリックした位置に移動するプログラム